Added cubby-holes for new projects.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..411d0ed
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+*~
+*.class
+.classpath
+.project
+.pydevproject
+.settings
+.javacp*
+target
+*.iml
+.idea
diff --git a/cli/pom.xml b/cli/pom.xml
new file mode 100644
index 0000000..80e173d
--- /dev/null
+++ b/cli/pom.xml
@@ -0,0 +1,44 @@
+<?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</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-cli</artifactId>
+ <packaging>bundle</packaging>
+
+ <description>ONOS administrative console command-line extensions
+ </description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.shell</groupId>
+ <artifactId>org.apache.karaf.shell.console</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java b/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java
new file mode 100644
index 0000000..aeea443
--- /dev/null
+++ b/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java
@@ -0,0 +1,24 @@
+package org.onlab.onos.cli;
+
+import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+
+/**
+ * Base abstraction of Karaf shell commands.
+ */
+public abstract class AbstractShellCommand extends OsgiCommandSupport {
+
+ /**
+ * Returns the reference to the implementaiton of the specified service.
+ *
+ * @param serviceClass service class
+ * @param <T> type of service
+ * @return service implementation
+ */
+ static <T> T get(Class<T> serviceClass) {
+ BundleContext bc = FrameworkUtil.getBundle(AbstractShellCommand.class).getBundleContext();
+ return bc.getService(bc.getServiceReference(serviceClass));
+ }
+
+}
diff --git a/cli/src/main/java/org/onlab/onos/cli/GreetCommand.java b/cli/src/main/java/org/onlab/onos/cli/GreetCommand.java
new file mode 100644
index 0000000..dd8ae81
--- /dev/null
+++ b/cli/src/main/java/org/onlab/onos/cli/GreetCommand.java
@@ -0,0 +1,24 @@
+package org.onlab.onos.cli;
+
+import org.apache.karaf.shell.commands.Argument;
+import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.onlab.onos.net.GreetService;
+
+/**
+ * Simple command example to demonstrate use of Karaf shell extensions; shows
+ * use of an optional parameter as well.
+ */
+@Command(scope = "onos", name = "greet", description = "Issues a greeting")
+public class GreetCommand extends OsgiCommandSupport {
+
+ @Argument(index = 0, name = "name", description = "Name to greet",
+ required = false, multiValued = false)
+ String name = "dude";
+
+ @Override
+ protected Object doExecute() throws Exception {
+ System.out.println(getService(GreetService.class).yo(name));
+ return null;
+ }
+}
diff --git a/cli/src/main/java/org/onlab/onos/cli/NameCompleter.java b/cli/src/main/java/org/onlab/onos/cli/NameCompleter.java
new file mode 100644
index 0000000..bdf3f72
--- /dev/null
+++ b/cli/src/main/java/org/onlab/onos/cli/NameCompleter.java
@@ -0,0 +1,33 @@
+package org.onlab.onos.cli;
+
+import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
+import org.onlab.onos.net.GreetService;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.SortedSet;
+
+/**
+ * Simple example of a command-line parameter completer.
+ * For a more open-ended sets a more efficient implementation would be required.
+ */
+public class NameCompleter implements Completer {
+ @Override
+ public int complete(String buffer, int cursor, List<String> candidates) {
+ // Delegate string completer
+ StringsCompleter delegate = new StringsCompleter();
+
+ // Fetch our service and feed it's offerings to the string completer
+ GreetService greetService = AbstractShellCommand.get(GreetService.class);
+ Iterator<String> it = greetService.names().iterator();
+ SortedSet<String> strings = delegate.getStrings();
+ while (it.hasNext()) {
+ strings.add(it.next());
+ }
+
+ // Now let the completer do the work for figuring out what to offer.
+ return delegate.complete(buffer, cursor, candidates);
+ }
+
+}
diff --git a/cli/src/main/javadoc/org/onlab/onos/cli/package.html b/cli/src/main/javadoc/org/onlab/onos/cli/package.html
new file mode 100644
index 0000000..dacfec0
--- /dev/null
+++ b/cli/src/main/javadoc/org/onlab/onos/cli/package.html
@@ -0,0 +1,3 @@
+<body>
+Administrative console command-line extensions.
+</body>
diff --git a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
new file mode 100644
index 0000000..5cc83ef
--- /dev/null
+++ b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -0,0 +1,14 @@
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+
+ <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
+ <command>
+ <action class="org.onlab.onos.cli.GreetCommand"/>
+ <completers>
+ <ref component-id="nameCompleter"/>
+ </completers>
+ </command>
+ </command-bundle>
+
+ <bean id="nameCompleter" class="org.onlab.onos.cli.NameCompleter"/>
+
+</blueprint>
diff --git a/features.xml b/features.xml
deleted file mode 100644
index 461d684..0000000
--- a/features.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
- ~ Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
- ~
- ~ This program and the accompanying materials are made available under the
- ~ terms of the Eclipse Public License v1.0 which accompanies this distribution,
- ~ and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
- name="net.onrc.onos-1.0.0">
- <repository>mvn:net.onrc.onos/onos-features/1.0.0-SNAPSHOT/xml/features</repository>
-
- <feature name="thirdparty" version="1.0.0"
- description="ONOS 3rd party dependencies">
- <bundle>mvn:com.google.code.findbugs/annotations/2.0.2</bundle>
- <bundle>mvn:io.netty/netty/3.9.2.Final</bundle>
- <bundle>mvn:com.google.guava/guava/17.0</bundle>
- <bundle>mvn:com.google.guava/guava/15.0</bundle>
-
- </feature>
-
- <feature name="base" version="1.0.0"
- description="ONOS Base">
- <feature>scr</feature>
- <feature>thirdparty</feature>
- <bundle>mvn:net.onrc.onos.sb/onos-sb/0.0.1</bundle>
- <bundle>mvn:org.projectfloodlight/openflowj/0.3.6-SNAPSHOT</bundle>
- </feature>
-
-</features>
diff --git a/features/features.xml b/features/features.xml
index 4b8f8cb..1c8f985 100644
--- a/features/features.xml
+++ b/features/features.xml
@@ -1,22 +1,65 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
- name="net.onrc.onos-1.0.0">
- <repository>mvn:net.onrc.onos/onos-features/1.0.0-SNAPSHOT/xml/features</repository>
+ name="onos-1.0.0">
+ <repository>mvn:org.onlab.onos/onos-features/1.0.0-SNAPSHOT/xml/features</repository>
- <feature name="onos-thirdparty" version="1.0.0"
+ <feature name="onos-thirdparty-base" version="1.0.0"
description="ONOS 3rd party dependencies">
- <bundle>mvn:com.google.code.findbugs/annotations/2.0.2</bundle>
+ <bundle>mvn:com.google.guava/guava/17.0</bundle>
<bundle>mvn:io.netty/netty/3.9.2.Final</bundle>
- <bundle>mvn:com.google.guava/guava/17.0</bundle>
- <bundle>mvn:com.google.guava/guava/15.0</bundle>
</feature>
- <feature name="onos-of-ctl" version="1.0.0"
- description="ONOS OpenFlow Libraries & Controller">
+ <feature name="onos-thirdparty-web" version="1.0.0"
+ description="ONOS 3rd party dependencies">
+ <feature>war</feature>
+ <bundle>mvn:com.fasterxml.jackson.core/jackson-core/2.4.2</bundle>
+ <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/2.4.2</bundle>
+ <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/2.4.2</bundle>
+ <bundle>mvn:com.sun.jersey/jersey-core/1.18.1</bundle>
+ <bundle>mvn:com.sun.jersey/jersey-server/1.18.1</bundle>
+ <bundle>mvn:com.sun.jersey/jersey-servlet/1.18.1</bundle>
+ </feature>
+
+ <feature name="onos-core" version="1.0.0"
+ description="ONOS core components">
<feature>scr</feature>
- <feature>thirdparty</feature>
- <bundle>mvn:net.onrc.onos.sb/onos-sb/0.0.1</bundle>
- <bundle>mvn:org.projectfloodlight/openflowj/0.3.6-SNAPSHOT</bundle>
+ <feature>onos-thirdparty-base</feature>
+ <bundle>mvn:org.onlab.onos/onos-utils-osgi/1.0.0-SNAPSHOT</bundle>
+ <bundle>mvn:org.onlab.onos/onos-utils-rest/1.0.0-SNAPSHOT</bundle>
+
+ <bundle>mvn:org.onlab.onos/onos-api/1.0.0-SNAPSHOT</bundle>
+ <bundle>mvn:org.onlab.onos/onos-core/1.0.0-SNAPSHOT</bundle>
+ </feature>
+
+ <feature name="onos-rest" version="1.0.0"
+ description="ONOS REST API components">
+ <feature>onos-core</feature>
+ <feature>onos-thirdparty-web</feature>
+ <bundle>mvn:org.onlab.onos/onos-rest/1.0.0-SNAPSHOT</bundle>
+ </feature>
+
+ <feature name="onos-gui" version="1.0.0"
+ description="ONOS GUI console components">
+ <feature>onos-core</feature>
+ <feature>onos-thirdparty-web</feature>
+ <bundle>mvn:org.onlab.onos/onos-gui/1.0.0-SNAPSHOT</bundle>
+ </feature>
+
+ <feature name="onos-cli" version="1.0.0"
+ description="ONOS admin command console components">
+ <feature>onos-core</feature>
+ <bundle>mvn:org.onlab.onos/onos-cli/1.0.0-SNAPSHOT</bundle>
+ </feature>
+
+ <feature name="onos-openflow" version="1.0.0"
+ description="ONOS OpenFlow API, Controller & Providers">
+ <feature>onos-core</feature>
+ <bundle>mvn:io.netty/netty/3.9.2.Final</bundle>
+ <bundle>mvn:com.google.guava/guava/15.0</bundle>
+
+ <bundle>mvn:org.onlab.onos/openflow-api/1.0.0-SNAPSHOT</bundle>
+ <bundle>mvn:org.onlab.onos/openflow-ctl/1.0.0-SNAPSHOT</bundle>
+ <bundle>mvn:org.onlab.onos/onos-of-providers/1.0.0-SNAPSHOT</bundle>
</feature>
</features>
diff --git a/features/old-features.xml b/features/old-features.xml
new file mode 100644
index 0000000..46e68ca
--- /dev/null
+++ b/features/old-features.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+ ~ Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
+ ~
+ ~ This program and the accompanying materials are made available under the
+ ~ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ ~ and is available at http://www.eclipse.org/legal/epl-v10.html
+ -->
+
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+ name="net.onrc.onos-1.0.0">
+ <repository>mvn:net.onrc.onos/onos-features/1.0.0-SNAPSHOT/xml/features</repository>
+
+ <feature name="thirdparty" version="1.0.0"
+ description="ONOS 3rd party dependencies">
+ <bundle>mvn:com.google.code.findbugs/annotations/2.0.2</bundle>
+ <bundle>mvn:io.netty/netty/3.9.2.Final</bundle>
+ <bundle>mvn:com.google.guava/guava/17.0</bundle>
+ <bundle>mvn:com.google.guava/guava/15.0</bundle>
+
+ </feature>
+
+ <feature name="base" version="1.0.0"
+ description="ONOS Base">
+ <feature>scr</feature>
+ <feature>thirdparty</feature>
+ <bundle>mvn:net.onrc.onos.sb/onos-sb/0.0.1</bundle>
+ <bundle>mvn:org.projectfloodlight/openflowj/0.3.6-SNAPSHOT</bundle>
+ </feature>
+
+</features>
diff --git a/features/pom.xml b/features/pom.xml
index baf4bf7..e370fc6 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -5,16 +5,15 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>net.onrc.onos</groupId>
+ <groupId>org.onlab.onos</groupId>
<artifactId>onos</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>onos-features</artifactId>
- <packaging>jar</packaging>
+ <packaging>pom</packaging>
- <name>onos-features</name>
<description>ONOS Apache Karaf feature definitions</description>
<build>
@@ -22,7 +21,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
- <version>1.3</version>
+ <version>1.9</version>
<executions>
<execution>
<id>attach-artifacts</id>
diff --git a/net/api/pom.xml b/net/api/pom.xml
new file mode 100644
index 0000000..f74d08e
--- /dev/null
+++ b/net/api/pom.xml
@@ -0,0 +1,19 @@
+<?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-net</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-api</artifactId>
+ <packaging>bundle</packaging>
+
+ <description>ONOS network control API</description>
+
+</project>
diff --git a/net/api/src/main/java/net/onrc/onos/api/Description.java b/net/api/src/main/java/net/onrc/onos/api/Description.java
deleted file mode 100644
index 8a3c127..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/Description.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package net.onrc.onos.api;
-
-/**
- * Base abstraction of a piece of information about network elements.
- */
-public interface Description {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/DeviceId.java b/net/api/src/main/java/net/onrc/onos/api/DeviceId.java
deleted file mode 100644
index 2210742..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/DeviceId.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package net.onrc.onos.api;
-
-import java.net.URI;
-
-/**
- * Immutable representaion of a device identity.
- */
-public class DeviceId {
-
- private final URI uri;
-
- public DeviceId(URI uri) {
- this.uri = uri;
- }
-
- /**
- * Returns the backing URI.
- *
- * @return backing device URI
- */
- public URI uri() {
- return uri;
- }
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/PortNumber.java b/net/api/src/main/java/net/onrc/onos/api/PortNumber.java
deleted file mode 100644
index 9a6dddd..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/PortNumber.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package net.onrc.onos.api;
-
-/**
- * Representation of a port number.
- */
-public interface PortNumber {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/Provider.java b/net/api/src/main/java/net/onrc/onos/api/Provider.java
deleted file mode 100644
index 1b38cf4..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/Provider.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api;
-
-/**
- * Abstraction of a provider of information about network environment.
- */
-public interface Provider {
-
- ProviderId id();
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/ProviderBroker.java b/net/api/src/main/java/net/onrc/onos/api/ProviderBroker.java
deleted file mode 100644
index ef2d4dc..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/ProviderBroker.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package net.onrc.onos.api;
-
-/**
- * Broker used for registering/unregistering information providers with the core.
- *
- * @param <T> type of the information provider
- * @param <S> type of the provider service
- */
-public interface ProviderBroker<T extends Provider, S extends ProviderService> {
-
- /**
- * Registers the supplied provider with the core.
- *
- * @param provider provider to be registered
- * @return provider service for injecting information into core
- */
- S register(T provider);
-
- /**
- * Unregisters the supplied provider. As a result the previously issued
- * provider service will be invalidated.
- *
- * @param provider provider to be unregistered
- */
- void unregister(T provider);
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/ProviderId.java b/net/api/src/main/java/net/onrc/onos/api/ProviderId.java
deleted file mode 100644
index 3f29bac..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/ProviderId.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package net.onrc.onos.api;
-
-/**
- * Notion of provider identity.
- */
-public class ProviderId {
-
- private final String id;
-
- public ProviderId(String id) {
- this.id = id;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- ProviderId that = (ProviderId) o;
-
- if (!id.equals(that.id)) {
- return false;
- }
-
- return true;
- }
-
- @Override
- public int hashCode() {
- return id.hashCode();
- }
-
- @Override
- public String toString() {
- return "ProviderId{" +
- "id='" + id + '\'' +
- '}';
- }
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/ProviderService.java b/net/api/src/main/java/net/onrc/onos/api/ProviderService.java
deleted file mode 100644
index add3366..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/ProviderService.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package net.onrc.onos.api;
-
-/**
- * Abstraction of a service through which providers can inject information
- * about the network environment into the core.
- */
-public interface ProviderService {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/DeviceDescription.java b/net/api/src/main/java/net/onrc/onos/api/device/DeviceDescription.java
deleted file mode 100644
index ef9a694..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/device/DeviceDescription.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package net.onrc.onos.api.device;
-
-import net.onrc.onos.api.Description;
-
-import java.net.URI;
-
-/**
- * Carrier of immutable information about a device.
- */
-public interface DeviceDescription extends Description {
-
- /**
- * Protocol/provider specific URI that can be used to encode the identity
- * information required to communicate with the device externally, e.g.
- * datapath ID.
- *
- * @return provider specific URI for the device
- */
- URI deviceURI();
-
-}
\ No newline at end of file
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProvider.java b/net/api/src/main/java/net/onrc/onos/api/device/DeviceProvider.java
deleted file mode 100644
index c93cab5..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.onrc.onos.api.device;
-
-import net.onrc.onos.api.Provider;
-
-/**
- * Abstraction of a device information provider.
- */
-public interface DeviceProvider extends Provider {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderBroker.java b/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderBroker.java
deleted file mode 100644
index fdbe322..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api.device;
-
-import net.onrc.onos.api.ProviderBroker;
-
-/**
- * Abstraction of a device provider brokerage.
- */
-public interface DeviceProviderBroker
- extends ProviderBroker<DeviceProvider, DeviceProviderService> {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderService.java b/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderService.java
deleted file mode 100644
index b0a33a6..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderService.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package net.onrc.onos.api.device;
-
-import net.onrc.onos.api.ProviderService;
-
-import java.util.List;
-
-/**
- * Service through which device providers can inject device information into
- * the core.
- */
-public interface DeviceProviderService extends ProviderService {
-
- // TODO: define suspend and remove actions on the mezzanine administrative API
-
- /**
- * Signals the core that a device has connected or has been detected somehow.
- *
- * @param deviceDescription information about network device
- */
- void deviceConnected(DeviceDescription deviceDescription);
-
- /**
- * Signals the core that a device has disconnected or is no longer reachable.
- *
- * @param deviceDescription device to be removed
- */
- void deviceDisconnected(DeviceDescription deviceDescription);
-
- /**
- * Sends information about all ports of a device. It is up to the core to
- * determine what has changed.
- *
- * @param ports list of device ports
- */
- void updatePorts(List<PortDescription> ports);
-
- /**
- * Used to notify the core about port status change of a single port.
- *
- * @param port description of the port that changed
- */
- void portStatusChanged(PortDescription port);
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/PortDescription.java b/net/api/src/main/java/net/onrc/onos/api/device/PortDescription.java
deleted file mode 100644
index 9f5db2a..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/device/PortDescription.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api.device;
-
-/**
- * Information about a port.
- */
-public interface PortDescription {
-
- // TODO: possibly relocate this to a common ground so that this can also used by host tracking if required
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/flow/FlowDescription.java b/net/api/src/main/java/net/onrc/onos/api/flow/FlowDescription.java
deleted file mode 100644
index 80fc051..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/flow/FlowDescription.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package net.onrc.onos.api.flow;
-
-package net.onrc.onos.api.Description;
-
-/**
- * Information about a flow rule.
- */
-public interface FlowDescription extends Description {
-
- // Match and action, possibly reason for flow rule, unless reason is too OF-specific.
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProvider.java b/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProvider.java
deleted file mode 100644
index acb63b4..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.onrc.onos.api.flow;
-
-import net.onrc.onos.api.Provider;
-
-/**
- * Abstraction of a flow rule provider.
- */
-public interface FlowRuleProvider extends Provider {
-}
\ No newline at end of file
diff --git a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderBroker.java b/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderBroker.java
deleted file mode 100644
index 27f1ca6..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api.flow;
-
-import net.onrc.onos.api.ProviderBroker;
-
-/**
- * Abstraction for a flow rule provider brokerage.
- */
-public interface FlowRuleProviderBroker
- extends ProviderBroker<FlowRuleProvider, FlowRuleProviderService> {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderService.java b/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderService.java
deleted file mode 100644
index 8f90c32..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package net.onrc.onos.api.flow;
-
-import net.onrc.onos.api.ProviderService;
-
-/**
- * Service through which flowrule providers can inject flowrule information into
- * the core.
- */
-public interface FlowRuleProviderService extends ProviderService {
-
- /**
- * Signals that a flow that was previously installed has been removed.
- *
- * @param flowDescription information about the removed flow
- */
- void flowRemoved(FlowDescription flowDescription);
-
- /**
- * Signals that a flowrule is missing for some network traffic.
- *
- * @param flowDescription information about traffic in need of flow rule(s)
- */
- void flowMissing(FlowDescription flowDescription);
-
- /**
- * Signals that a flowrule has been added.
- *
- * TODO think about if this really makes sense, e.g. if stats collection or
- * something can leverage it.
- *
- * @param flowDescription the rule that was added
- */
- void flowAdded(FlowDescription flowDescription);
-
-}
\ No newline at end of file
diff --git a/net/api/src/main/java/net/onrc/onos/api/host/HostDescription.java b/net/api/src/main/java/net/onrc/onos/api/host/HostDescription.java
deleted file mode 100644
index a397155..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/host/HostDescription.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.onrc.onos.api.host;
-
-/**
- * Information describing host and its location.
- */
-public interface HostDescription {
-
- // IP, MAC, VLAN-ID, HostLocation -> (ConnectionPoint + timestamp)
-
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/host/HostProvider.java b/net/api/src/main/java/net/onrc/onos/api/host/HostProvider.java
deleted file mode 100644
index f05e26d..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/host/HostProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.onrc.onos.api.host;
-
-import net.onrc.onos.api.Provider;
-
-/**
- * Provider of information about hosts and their location on the network.
- */
-public interface HostProvider extends Provider {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/host/HostProviderBroker.java b/net/api/src/main/java/net/onrc/onos/api/host/HostProviderBroker.java
deleted file mode 100644
index c799b20..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/host/HostProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api.host;
-
-import net.onrc.onos.api.ProviderBroker;
-
-/**
- * Abstraction of a host provider brokerage.
- */
-public interface HostProviderBroker
- extends ProviderBroker<HostProvider, HostProviderService> {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/host/HostProviderService.java b/net/api/src/main/java/net/onrc/onos/api/host/HostProviderService.java
deleted file mode 100644
index 662ba75..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/host/HostProviderService.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package net.onrc.onos.api.host;
-
-import net.onrc.onos.api.ProviderService;
-
-/**
- * Means of conveying host information to the core.
- */
-public interface HostProviderService extends ProviderService {
-
- void hostDetected(HostDescription hostDescription);
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/link/LinkDescription.java b/net/api/src/main/java/net/onrc/onos/api/link/LinkDescription.java
deleted file mode 100644
index c40f522..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/link/LinkDescription.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package net.onrc.onos.api.link;
-
-/**
- * Describes an infrastructure link.
- */
-public interface LinkDescription {
-
- // TODO: src, dst connection points, which are pairs of (DeviceId, PortNumber)
-
-// On the north:
-// Link = (ConnectPoint src, ConnectPoint dst);
-// ConnectPoint = (DeviceId, PortNumber);
-
-// On the south
-// LinkDescription ~ Link
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/link/LinkProvider.java b/net/api/src/main/java/net/onrc/onos/api/link/LinkProvider.java
deleted file mode 100644
index 4d7ab86..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/link/LinkProvider.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api.link;
-
-import net.onrc.onos.api.Provider;
-
-/**
- * Abstraction of an entity providing information about infrastructure links
- * to the core.
- */
-public interface LinkProvider extends Provider {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderBroker.java b/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderBroker.java
deleted file mode 100644
index 8da7bab..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api.link;
-
-import net.onrc.onos.api.ProviderBroker;
-
-/**
- * Abstraction of an infrastructure link provider brokerage.
- */
-public interface LinkProviderBroker
- extends ProviderBroker<LinkProvider, LinkProviderService> {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderService.java b/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderService.java
deleted file mode 100644
index 23fced8..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package net.onrc.onos.api.link;
-
-import net.onrc.onos.api.ProviderService;
-
-/**
- * Means for injecting link information into the core.
- */
-public interface LinkProviderService extends ProviderService {
-
- /**
- * Signals that an infrastructure link has been connected.
- *
- * @param linkDescription link information
- */
- void linkConnected(LinkDescription linkDescription);
-
- /**
- * Signals that an infrastructure link has been disconnected.
- *
- * @param linkDescription link information
- */
- void linkDisconnected(LinkDescription linkDescription);
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyDescription.java b/net/api/src/main/java/net/onrc/onos/api/topology/TopologyDescription.java
deleted file mode 100644
index 306447e..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyDescription.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package net.onrc.onos.api.topology;
-
-import net.onrc.onos.api.Description;
-
-import java.util.Collection;
-
-/**
- * Describes attribute(s) of a network topology.
- */
-public interface TopologyDescription extends Description {
-
- /**
- * A collection of Device, Link, and Host descriptors that describe
- * the changes tha have occurred in the network topology.
- *
- * @return network element descriptions describing topology change
- */
- Collection<Description> details();
-
-}
\ No newline at end of file
diff --git a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProvider.java b/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProvider.java
deleted file mode 100644
index f997c61..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProvider.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api.topology;
-
-import net.onrc.onos.api.Provider;
-
-/**
- * Means for injecting topology information into the core.
- */
-public interface TopologyProvider extends Provider {
-
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderBroker.java b/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderBroker.java
deleted file mode 100644
index 207f33a..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package net.onrc.onos.api.topology;
-
-import net.onrc.onos.api.ProviderBroker;
-
-/**
- * Abstraction of a network topology provider brokerage.
- */
-public interface TopologyProviderBroker extends
- ProviderBroker<TopologyProvider, TopologyProviderService> {
-}
diff --git a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderService.java b/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderService.java
deleted file mode 100644
index 67fbb1d..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderService.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package net.onrc.onos.api.topology;
-
-import net.onrc.onos.api.ProviderService;
-
-/**
- * Means for injecting topology information into the core.
- */
-public interface TopologyProviderService extends ProviderService {
-
- // What can be conveyed in a topology that isn't by individual
- // providers?
-
- /**
- * Signals the core that some aspect of the topology has changed.
- *
- * @param topoDescription information about topology
- */
- void topologyChanged(TopologyDescription topoDescription);
-
-}
diff --git a/net/api/src/main/java/org/onlab/onos/net/Description.java b/net/api/src/main/java/org/onlab/onos/net/Description.java
new file mode 100644
index 0000000..38338c1
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/Description.java
@@ -0,0 +1,7 @@
+package org.onlab.onos.net;
+
+/**
+ * Base abstraction of a piece of information about network elements.
+ */
+public interface Description {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/DeviceId.java b/net/api/src/main/java/org/onlab/onos/net/DeviceId.java
new file mode 100644
index 0000000..ebb3fb7
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/DeviceId.java
@@ -0,0 +1,25 @@
+package org.onlab.onos.net;
+
+import java.net.URI;
+
+/**
+ * Immutable representaion of a device identity.
+ */
+public class DeviceId {
+
+ private final URI uri;
+
+ public DeviceId(URI uri) {
+ this.uri = uri;
+ }
+
+ /**
+ * Returns the backing URI.
+ *
+ * @return backing device URI
+ */
+ public URI uri() {
+ return uri;
+ }
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/GreetService.java b/net/api/src/main/java/org/onlab/onos/net/GreetService.java
new file mode 100644
index 0000000..09f0d96
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/GreetService.java
@@ -0,0 +1,23 @@
+package org.onlab.onos.net;
+
+/**
+ * Example of a simple service that provides greetings and it
+ * remembers the names which were greeted.
+ */
+public interface GreetService {
+
+ /**
+ * Returns a greeting tailored to the specified name.
+ *
+ * @param name some name
+ * @return greeting
+ */
+ String yo(String name);
+
+ /**
+ * Returns an iterable of names encountered thus far.
+ *
+ * @return iterable of names
+ */
+ Iterable<String> names();
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/PortNumber.java b/net/api/src/main/java/org/onlab/onos/net/PortNumber.java
new file mode 100644
index 0000000..4ea4e24
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/PortNumber.java
@@ -0,0 +1,7 @@
+package org.onlab.onos.net;
+
+/**
+ * Representation of a port number.
+ */
+public interface PortNumber {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/Provider.java b/net/api/src/main/java/org/onlab/onos/net/Provider.java
new file mode 100644
index 0000000..eda436b
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/Provider.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net;
+
+/**
+ * Abstraction of a provider of information about network environment.
+ */
+public interface Provider {
+
+ ProviderId id();
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/ProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/ProviderBroker.java
new file mode 100644
index 0000000..63d7189
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/ProviderBroker.java
@@ -0,0 +1,27 @@
+package org.onlab.onos.net;
+
+/**
+ * Broker used for registering/unregistering information providers with the core.
+ *
+ * @param <T> type of the information provider
+ * @param <S> type of the provider service
+ */
+public interface ProviderBroker<T extends Provider, S extends ProviderService> {
+
+ /**
+ * Registers the supplied provider with the core.
+ *
+ * @param provider provider to be registered
+ * @return provider service for injecting information into core
+ */
+ S register(T provider);
+
+ /**
+ * Unregisters the supplied provider. As a result the previously issued
+ * provider service will be invalidated.
+ *
+ * @param provider provider to be unregistered
+ */
+ void unregister(T provider);
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/ProviderId.java b/net/api/src/main/java/org/onlab/onos/net/ProviderId.java
new file mode 100644
index 0000000..53dd739
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/ProviderId.java
@@ -0,0 +1,43 @@
+package org.onlab.onos.net;
+
+/**
+ * Notion of provider identity.
+ */
+public class ProviderId {
+
+ private final String id;
+
+ public ProviderId(String id) {
+ this.id = id;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ ProviderId that = (ProviderId) o;
+
+ if (!id.equals(that.id)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return id.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "ProviderId{" +
+ "id='" + id + '\'' +
+ '}';
+ }
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/ProviderService.java b/net/api/src/main/java/org/onlab/onos/net/ProviderService.java
new file mode 100644
index 0000000..8a7d7e9
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/ProviderService.java
@@ -0,0 +1,8 @@
+package org.onlab.onos.net;
+
+/**
+ * Abstraction of a service through which providers can inject information
+ * about the network environment into the core.
+ */
+public interface ProviderService {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java
new file mode 100644
index 0000000..2b83890
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java
@@ -0,0 +1,21 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.Description;
+
+import java.net.URI;
+
+/**
+ * Carrier of immutable information about a device.
+ */
+public interface DeviceDescription extends Description {
+
+ /**
+ * Protocol/provider specific URI that can be used to encode the identity
+ * information required to communicate with the device externally, e.g.
+ * datapath ID.
+ *
+ * @return provider specific URI for the device
+ */
+ URI deviceURI();
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
new file mode 100644
index 0000000..04ca92c
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
@@ -0,0 +1,9 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.Provider;
+
+/**
+ * Abstraction of a device information provider.
+ */
+public interface DeviceProvider extends Provider {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
new file mode 100644
index 0000000..926f76e
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.ProviderBroker;
+
+/**
+ * Abstraction of a device provider brokerage.
+ */
+public interface DeviceProviderBroker
+ extends ProviderBroker<DeviceProvider, DeviceProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
new file mode 100644
index 0000000..e5ee1f0
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
@@ -0,0 +1,44 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.ProviderService;
+
+import java.util.List;
+
+/**
+ * Service through which device providers can inject device information into
+ * the core.
+ */
+public interface DeviceProviderService extends ProviderService {
+
+ // TODO: define suspend and remove actions on the mezzanine administrative API
+
+ /**
+ * Signals the core that a device has connected or has been detected somehow.
+ *
+ * @param deviceDescription information about network device
+ */
+ void deviceConnected(DeviceDescription deviceDescription);
+
+ /**
+ * Signals the core that a device has disconnected or is no longer reachable.
+ *
+ * @param deviceDescription device to be removed
+ */
+ void deviceDisconnected(DeviceDescription deviceDescription);
+
+ /**
+ * Sends information about all ports of a device. It is up to the core to
+ * determine what has changed.
+ *
+ * @param ports list of device ports
+ */
+ void updatePorts(List<PortDescription> ports);
+
+ /**
+ * Used to notify the core about port status change of a single port.
+ *
+ * @param port description of the port that changed
+ */
+ void portStatusChanged(PortDescription port);
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java b/net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java
new file mode 100644
index 0000000..4c944ab
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.device;
+
+/**
+ * Information about a port.
+ */
+public interface PortDescription {
+
+ // TODO: possibly relocate this to a common ground so that this can also used by host tracking if required
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/flow/FlowDescription.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowDescription.java
new file mode 100644
index 0000000..2a64815
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowDescription.java
@@ -0,0 +1,12 @@
+package org.onlab.onos.net.flow;
+
+import org.onlab.onos.net.Description;
+
+/**
+ * Information about a flow rule.
+ */
+public interface FlowDescription extends Description {
+
+ // Match and action, possibly reason for flow rule, unless reason is too OF-specific.
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
new file mode 100644
index 0000000..ac46da8
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
@@ -0,0 +1,9 @@
+package org.onlab.onos.net.flow;
+
+import org.onlab.onos.net.Provider;
+
+/**
+ * Abstraction of a flow rule provider.
+ */
+public interface FlowRuleProvider extends Provider {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java
new file mode 100644
index 0000000..c3f7602
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.flow;
+
+import org.onlab.onos.net.ProviderBroker;
+
+/**
+ * Abstraction for a flow rule provider brokerage.
+ */
+public interface FlowRuleProviderBroker
+ extends ProviderBroker<FlowRuleProvider, FlowRuleProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderService.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderService.java
new file mode 100644
index 0000000..9b26d76
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderService.java
@@ -0,0 +1,35 @@
+package org.onlab.onos.net.flow;
+
+import org.onlab.onos.net.ProviderService;
+
+/**
+ * Service through which flowrule providers can inject flowrule information into
+ * the core.
+ */
+public interface FlowRuleProviderService extends ProviderService {
+
+ /**
+ * Signals that a flow that was previously installed has been removed.
+ *
+ * @param flowDescription information about the removed flow
+ */
+ void flowRemoved(FlowDescription flowDescription);
+
+ /**
+ * Signals that a flowrule is missing for some network traffic.
+ *
+ * @param flowDescription information about traffic in need of flow rule(s)
+ */
+ void flowMissing(FlowDescription flowDescription);
+
+ /**
+ * Signals that a flowrule has been added.
+ *
+ * TODO think about if this really makes sense, e.g. if stats collection or
+ * something can leverage it.
+ *
+ * @param flowDescription the rule that was added
+ */
+ void flowAdded(FlowDescription flowDescription);
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/host/HostDescription.java b/net/api/src/main/java/org/onlab/onos/net/host/HostDescription.java
new file mode 100644
index 0000000..e3c67b9
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostDescription.java
@@ -0,0 +1,11 @@
+package org.onlab.onos.net.host;
+
+/**
+ * Information describing host and its location.
+ */
+public interface HostDescription {
+
+ // IP, MAC, VLAN-ID, HostLocation -> (ConnectionPoint + timestamp)
+
+}
+
diff --git a/net/api/src/main/java/org/onlab/onos/net/host/HostProvider.java b/net/api/src/main/java/org/onlab/onos/net/host/HostProvider.java
new file mode 100644
index 0000000..1ad2c65
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostProvider.java
@@ -0,0 +1,9 @@
+package org.onlab.onos.net.host;
+
+import org.onlab.onos.net.Provider;
+
+/**
+ * Provider of information about hosts and their location on the network.
+ */
+public interface HostProvider extends Provider {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java
new file mode 100644
index 0000000..427e54e
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.host;
+
+import org.onlab.onos.net.ProviderBroker;
+
+/**
+ * Abstraction of a host provider brokerage.
+ */
+public interface HostProviderBroker
+ extends ProviderBroker<HostProvider, HostProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/host/HostProviderService.java b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderService.java
new file mode 100644
index 0000000..4d5d470
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderService.java
@@ -0,0 +1,12 @@
+package org.onlab.onos.net.host;
+
+import org.onlab.onos.net.ProviderService;
+
+/**
+ * Means of conveying host information to the core.
+ */
+public interface HostProviderService extends ProviderService {
+
+ void hostDetected(HostDescription hostDescription);
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java
new file mode 100644
index 0000000..8d712f0
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java
@@ -0,0 +1,17 @@
+package org.onlab.onos.net.link;
+
+/**
+ * Describes an infrastructure link.
+ */
+public interface LinkDescription {
+
+ // TODO: src, dst connection points, which are pairs of (DeviceId, PortNumber)
+
+// On the north:
+// Link = (ConnectPoint src, ConnectPoint dst);
+// ConnectPoint = (DeviceId, PortNumber);
+
+// On the south
+// LinkDescription ~ Link
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/link/LinkProvider.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkProvider.java
new file mode 100644
index 0000000..57cc45d
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkProvider.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.link;
+
+import org.onlab.onos.net.Provider;
+
+/**
+ * Abstraction of an entity providing information about infrastructure links
+ * to the core.
+ */
+public interface LinkProvider extends Provider {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java
new file mode 100644
index 0000000..b0bfb05
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.link;
+
+import org.onlab.onos.net.ProviderBroker;
+
+/**
+ * Abstraction of an infrastructure link provider brokerage.
+ */
+public interface LinkProviderBroker
+ extends ProviderBroker<LinkProvider, LinkProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderService.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderService.java
new file mode 100644
index 0000000..9f523f7
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderService.java
@@ -0,0 +1,24 @@
+package org.onlab.onos.net.link;
+
+import org.onlab.onos.net.ProviderService;
+
+/**
+ * Means for injecting link information into the core.
+ */
+public interface LinkProviderService extends ProviderService {
+
+ /**
+ * Signals that an infrastructure link has been connected.
+ *
+ * @param linkDescription link information
+ */
+ void linkConnected(LinkDescription linkDescription);
+
+ /**
+ * Signals that an infrastructure link has been disconnected.
+ *
+ * @param linkDescription link information
+ */
+ void linkDisconnected(LinkDescription linkDescription);
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/topology/TopologyDescription.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyDescription.java
new file mode 100644
index 0000000..0c55314
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyDescription.java
@@ -0,0 +1,20 @@
+package org.onlab.onos.net.topology;
+
+import org.onlab.onos.net.Description;
+
+import java.util.Collection;
+
+/**
+ * Describes attribute(s) of a network topology.
+ */
+public interface TopologyDescription extends Description {
+
+ /**
+ * A collection of Device, Link, and Host descriptors that describe
+ * the changes tha have occurred in the network topology.
+ *
+ * @return network element descriptions describing topology change
+ */
+ Collection<Description> details();
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProvider.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProvider.java
new file mode 100644
index 0000000..70264dc
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProvider.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.topology;
+
+import org.onlab.onos.net.Provider;
+
+/**
+ * Means for injecting topology information into the core.
+ */
+public interface TopologyProvider extends Provider {
+
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java
new file mode 100644
index 0000000..9caa817
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.topology;
+
+import org.onlab.onos.net.ProviderBroker;
+
+/**
+ * Abstraction of a network topology provider brokerage.
+ */
+public interface TopologyProviderBroker extends
+ ProviderBroker<TopologyProvider, TopologyProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderService.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderService.java
new file mode 100644
index 0000000..bef83ed
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderService.java
@@ -0,0 +1,20 @@
+package org.onlab.onos.net.topology;
+
+import org.onlab.onos.net.ProviderService;
+
+/**
+ * Means for injecting topology information into the core.
+ */
+public interface TopologyProviderService extends ProviderService {
+
+ // What can be conveyed in a topology that isn't by individual
+ // providers?
+
+ /**
+ * Signals the core that some aspect of the topology has changed.
+ *
+ * @param topoDescription information about topology
+ */
+ void topologyChanged(TopologyDescription topoDescription);
+
+}
diff --git a/net/api/src/main/javadoc/org/onlab/onos/net/package.html b/net/api/src/main/javadoc/org/onlab/onos/net/package.html
new file mode 100644
index 0000000..f03b788
--- /dev/null
+++ b/net/api/src/main/javadoc/org/onlab/onos/net/package.html
@@ -0,0 +1,3 @@
+<body>
+ONOS API definitions.
+</body>
\ No newline at end of file
diff --git a/net/core/pom.xml b/net/core/pom.xml
new file mode 100644
index 0000000..30f6e12
--- /dev/null
+++ b/net/core/pom.xml
@@ -0,0 +1,43 @@
+<?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-net</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-core</artifactId>
+ <packaging>bundle</packaging>
+
+ <description>ONOS network control core subsystems</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.scr.annotations</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/net/core/src/main/java/org/onlab/onos/net/impl/GreetManager.java b/net/core/src/main/java/org/onlab/onos/net/impl/GreetManager.java
new file mode 100644
index 0000000..65a42bc
--- /dev/null
+++ b/net/core/src/main/java/org/onlab/onos/net/impl/GreetManager.java
@@ -0,0 +1,52 @@
+package org.onlab.onos.net.impl;
+
+import com.google.common.collect.ImmutableSet;
+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.net.GreetService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * Trivial implementation of the seed service to demonstrate component and
+ * service annotations.
+ */
+@Component(immediate = true)
+@Service
+public class GreetManager implements GreetService {
+
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ private final Set<String> names = new HashSet<>();
+
+ @Override
+ public synchronized String yo(String name) {
+ checkNotNull(name, "Name cannot be null");
+ names.add(name);
+ log.info("Greeted '{}'", name);
+ return "Whazup " + name + "?";
+ }
+
+ @Override
+ public synchronized Iterable<String> names() {
+ return ImmutableSet.copyOf(names);
+ }
+
+ @Activate
+ public void activate() {
+ log.info("SeedManager started");
+ }
+
+ @Deactivate
+ public void deactivate() {
+ log.info("SeedManager stopped");
+ }
+
+}
diff --git a/net/core/src/main/java/org/onlab/onos/net/impl/SomeOtherComponent.java b/net/core/src/main/java/org/onlab/onos/net/impl/SomeOtherComponent.java
new file mode 100644
index 0000000..c53ab04
--- /dev/null
+++ b/net/core/src/main/java/org/onlab/onos/net/impl/SomeOtherComponent.java
@@ -0,0 +1,36 @@
+package org.onlab.onos.net.impl;
+
+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.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.onlab.onos.net.GreetService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Example of a component that does not provide any service, but consumes one.
+ */
+@Component(immediate = true)
+public class SomeOtherComponent {
+
+ private final Logger log = LoggerFactory.getLogger(SomeOtherComponent.class);
+
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected GreetService service;
+ // protected to allow injection for testing;
+ // alternative is to write bindSeedService and unbindSeedService, which is more code
+
+ @Activate
+ public void activate() {
+ log.info("SomeOtherComponent started");
+ service.yo("neighbour");
+ }
+
+ @Deactivate
+ public void deactivate() {
+ log.info("SomeOtherComponent stopped");
+ }
+
+}
diff --git a/net/core/src/main/javadoc/org/onlab/onos/net/impl/package.html b/net/core/src/main/javadoc/org/onlab/onos/net/impl/package.html
new file mode 100644
index 0000000..ba285bd
--- /dev/null
+++ b/net/core/src/main/javadoc/org/onlab/onos/net/impl/package.html
@@ -0,0 +1,3 @@
+<body>
+ONOS core implementations.
+</body>
\ No newline at end of file
diff --git a/net/core/src/test/java/org/onlab/onos/net/impl/GreetManagerTest.java b/net/core/src/test/java/org/onlab/onos/net/impl/GreetManagerTest.java
new file mode 100644
index 0000000..9c05f20
--- /dev/null
+++ b/net/core/src/test/java/org/onlab/onos/net/impl/GreetManagerTest.java
@@ -0,0 +1,31 @@
+package org.onlab.onos.net.impl;
+
+import org.junit.Test;
+import org.onlab.onos.net.GreetService;
+
+import java.util.Iterator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * Example of a component & service implementation unit test.
+ */
+public class GreetManagerTest {
+
+ @Test
+ public void basics() {
+ GreetService service = new GreetManager();
+ assertEquals("incorrect greeting", "Whazup dude?", service.yo("dude"));
+
+ Iterator<String> names = service.names().iterator();
+ assertEquals("incorrect name", "dude", names.next());
+ assertFalse("no more names expected", names.hasNext());
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void nullArg() {
+ new GreetManager().yo(null);
+ }
+
+}
diff --git a/net/pom.xml b/net/pom.xml
new file mode 100644
index 0000000..bd4fa6e
--- /dev/null
+++ b/net/pom.xml
@@ -0,0 +1,40 @@
+<?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</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-net</artifactId>
+ <packaging>pom</packaging>
+
+ <description>ONOS Core root project</description>
+
+ <modules>
+ <module>api</module>
+ <module>core</module>
+ </modules>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/of-save/ctl/conf/checkstyle/checkstyle_maven.properties b/of-save/ctl/conf/checkstyle/checkstyle_maven.properties
new file mode 100644
index 0000000..4677e08
--- /dev/null
+++ b/of-save/ctl/conf/checkstyle/checkstyle_maven.properties
@@ -0,0 +1,2 @@
+# See: http://rolf-engelhard.de/2011/04/using-the-same-suppression-filter-for-checkstyle-in-eclipse-and-maven/
+config_loc=conf/checkstyle
diff --git a/of-save/ctl/conf/checkstyle/sun_checks.xml b/of-save/ctl/conf/checkstyle/sun_checks.xml
new file mode 100644
index 0000000..b1404c1
--- /dev/null
+++ b/of-save/ctl/conf/checkstyle/sun_checks.xml
@@ -0,0 +1,284 @@
+<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
+
+
+<!--
+
+ Checkstyle configuration that checks the sun coding conventions from:
+
+ - the Java Language Specification at
+ http://java.sun.com/docs/books/jls/second_edition/html/index.html
+
+ - the Sun Code Conventions at http://java.sun.com/docs/codeconv/
+
+ - the Javadoc guidelines at
+ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
+
+ - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
+
+ - some best practices
+
+ Checkstyle is very configurable. Be sure to read the documentation at
+ http://checkstyle.sf.net (or in your downloaded distribution).
+
+ Most Checks are configurable, be sure to consult the documentation.
+
+ To completely disable a check, just comment it out or delete it from the file.
+
+ Finally, it is worth reading the documentation.
+
+-->
+
+
+<!--
+ The default severity setting in checkstyle is 'error', so some
+ of the rules below are configured to change the severity to
+ 'warning'. Over time, these 'warning' settings should be
+ removed as more of the ONOS source code is modified to
+ follow the recommended rules.
+-->
+
+
+
+<module name="Checker">
+ <module name="SuppressionFilter">
+ <property name="file" value="${config_loc}/suppressions.xml"/>
+ </module>
+ <!--
+ If you set the basedir property below, then all reported file
+ names will be relative to the specified directory. See
+ http://checkstyle.sourceforge.net/5.x/config.html#Checker
+
+ <property name="basedir" value="${basedir}"/>
+ -->
+ <!-- Checks that a package-info.java file exists for each package. -->
+ <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
+ <!-- ONOS does not currently supply package level Javadoc information
+ in package-info files -->
+ <!-- <module name="JavadocPackage"/> -->
+
+ <!-- Checks whether files end with a new line. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+ <module name="NewlineAtEndOfFile"/>
+
+ <!-- Checks that property files contain the same keys. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
+ <module name="Translation"/>
+
+ <!-- Checks for Size Violations. -->
+ <!-- See http://checkstyle.sf.net/config_sizes.html -->
+ <module name="FileLength">
+ <property name="max" value="2500"/>
+ </module>
+
+ <!-- Checks for whitespace -->
+ <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+ <module name="FileTabCharacter"/>
+
+ <!-- Miscellaneous other checks. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html -->
+ <module name="RegexpSingleline">
+ <property name="format" value="\s+$"/>
+ <property name="minimum" value="0"/>
+ <property name="maximum" value="0"/>
+ <property name="message" value="Line has trailing spaces."/>
+ </module>
+
+ <!-- Checks for Headers -->
+ <!-- See http://checkstyle.sf.net/config_header.html -->
+ <!-- <module name="Header"> -->
+ <!-- <property name="headerFile" value="${checkstyle.header.file}"/> -->
+ <!-- <property name="fileExtensions" value="java"/> -->
+ <!-- </module> -->
+
+ <module name="SuppressionCommentFilter">
+ <property name="offCommentFormat" value="(CHECKSTYLE\:OFF|Generated by the protocol buffer compiler.)"/>
+ <property name="onCommentFormat" value="CHECKSTYLE:ON"/>
+ </module>
+
+ <module name="SuppressWithNearbyCommentFilter">
+ <property name="commentFormat" value="CHECKSTYLE IGNORE THIS LINE" />
+ <property name="checkFormat" value=".*" />
+ <property name="influenceFormat" value="0" />
+ </module>
+
+ <!-- Example: // CHECKSTYLE IGNORE FinalClass FOR NEXT 1 LINES -->
+ <module name="SuppressWithNearbyCommentFilter">
+ <property name="commentFormat" value="CHECKSTYLE IGNORE (\w+) FOR NEXT (\d+) LINES"/>
+ <property name="checkFormat" value="$1"/>
+ <property name="influenceFormat" value="$2"/>
+ </module>
+
+ <module name="TreeWalker">
+
+ <module name="FileContentsHolder"/>
+ <!-- Checks for Javadoc comments. -->
+ <!-- See http://checkstyle.sf.net/config_javadoc.html -->
+ <module name="JavadocMethod">
+ <property name="severity" value="warning"/>
+ <property name="allowUndeclaredRTE" value="true"/>
+ </module>
+ <module name="JavadocType">
+ <property name="severity" value="warning"/>
+ </module>
+ <module name="JavadocVariable">
+ <!-- Suppress check for private member Javadocs.
+ Possibly revist fixing these. -->
+ <property name="scope" value="public"/>
+ <property name="severity" value="warning"/>
+ </module>
+ <module name="JavadocStyle"/>
+ <!-- @author tag should not be used -->
+ <module name="WriteTag">
+ <property name="tag" value="@author"/>
+ <property name="tagFormat" value="\S"/>
+ <property name="severity" value="ignore"/>
+ <property name="tagSeverity" value="error"/>
+ </module>
+
+
+ <!-- Checks for Naming Conventions. -->
+ <!-- See http://checkstyle.sf.net/config_naming.html -->
+ <module name="ConstantName">
+ <!-- ONOS allows the name "log" for static final Loggers -->
+ <property name="format"
+ value="^log$|^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
+ </module>
+ <module name="LocalFinalVariableName"/>
+
+ <module name="LocalVariableName"/>
+
+ <module name="MemberName"/>
+ <module name="MethodName"/>
+ <module name="PackageName"/>
+ <module name="ParameterName"/>
+ <module name="StaticVariableName"/>
+ <module name="TypeName"/>
+
+ <!-- Checks for imports -->
+ <!-- See http://checkstyle.sf.net/config_import.html -->
+ <module name="AvoidStarImport">
+ <property name="allowStaticMemberImports" value="true"/>
+ </module>
+ <module name="IllegalImport"/>
+ <!-- defaults to sun.* packages -->
+ <module name="RedundantImport"/>
+ <module name="UnusedImports"/>
+
+
+ <!-- Checks for Size Violations. -->
+ <!-- See http://checkstyle.sf.net/config_sizes.html -->
+ <module name="LineLength">
+ <!-- ONOS standard usage is 80 columns, but we allow up
+ to 120 to not break the build. -->
+ <property name="max" value="120"/>
+ <property name="ignorePattern" value="^import"/>
+ </module>
+ <module name="MethodLength">
+ <property name="max" value="400"/>
+ </module>
+
+ <module name="ParameterNumber"/>
+
+ <!-- Checks for whitespace -->
+ <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+ <module name="EmptyForIteratorPad"/>
+ <module name="GenericWhitespace"/>
+ <module name="MethodParamPad"/>
+ <module name="NoWhitespaceAfter"/>
+ <module name="NoWhitespaceBefore"/>
+
+ <!-- Disabled for ONOS. Default rules specify undesired behavior for the '?' operator -->
+ <!-- <module name="OperatorWrap"/> -->
+ <module name="ParenPad"/>
+ <module name="TypecastParenPad"/>
+ <module name="WhitespaceAfter"/>
+ <module name="WhitespaceAround">
+ <property name="allowEmptyConstructors" value="true"/>
+ <property name="allowEmptyMethods" value="true"/>
+ </module>
+
+
+
+ <!-- Modifier Checks -->
+ <!-- See http://checkstyle.sf.net/config_modifiers.html -->
+ <module name="ModifierOrder"/>
+
+ <!-- Disabled for ONOS to allow use of public -->
+ <!-- modifiers in interfaces. -->
+ <!-- <module name="RedundantModifier"/> -->
+
+
+ <!-- Checks for blocks. You know, those {}'s -->
+ <!-- See http://checkstyle.sf.net/config_blocks.html -->
+ <module name="AvoidNestedBlocks">
+ <!-- ONOS alows declarations inside of switch case blocks -->
+ <property name="allowInSwitchCase" value="true"/>
+ </module>
+ <module name="EmptyBlock"/>
+ <module name="LeftCurly"/>
+ <module name="NeedBraces"/>
+ <module name="RightCurly"/>
+
+ <!-- Checks for common coding problems -->
+ <!-- See http://checkstyle.sf.net/config_coding.html -->
+ <!-- ONOS allows conditional operators -->
+ <!-- <module name="AvoidInlineConditionals"/> -->
+ <module name="EmptyStatement"/>
+ <module name="EqualsHashCode"/>
+
+ <module name="HiddenField">
+ <property name="ignoreSetter" value="true"/>
+ <property name="ignoreConstructorParameter" value="true"/>
+ </module>
+
+ <module name="IllegalInstantiation"/>
+ <module name="InnerAssignment"/>
+
+ <!-- Many violations of this rule present, revist in a
+ subsequent round of cleanups -->
+ <!-- <module name="MagicNumber"/> -->
+ <module name="MissingSwitchDefault"/>
+
+ <module name="RedundantThrows">
+ <property name="allowSubclasses" value="true"/>
+ <property name="allowUnchecked" value="true"/>
+ <property name="suppressLoadErrors" value="true"/>
+ </module>
+
+ <module name="SimplifyBooleanExpression"/>
+ <module name="SimplifyBooleanReturn"/>
+
+ <!-- Checks for class design -->
+ <!-- See http://checkstyle.sf.net/config_design.html -->
+ <!-- ONOS produces many warnings of this type.
+ Fixing all of these is outside the scope of the current cleanup. -->
+ <!-- <module name="DesignForExtension"/> -->
+ <module name="FinalClass"/>
+
+ <module name="HideUtilityClassConstructor"/>
+
+ <module name="InterfaceIsType"/>
+
+ <module name="VisibilityModifier">
+ <property name="severity" value="warning"/>
+ </module>
+
+
+
+ <!-- Miscellaneous other checks. -->
+ <!-- See http://checkstyle.sf.net/config_misc.html -->
+ <module name="ArrayTypeStyle"/>
+
+ <!-- Many violations of this rule currently, too many to fix
+ in the current cleanup. -->
+ <!-- <module name="FinalParameters"/> -->
+ <!-- ONOS allows TODO markers in checked in source code -->
+ <!-- <module name="TodoComment"/> -->
+ <module name="UpperEll"/>
+
+ </module>
+
+ </module>
diff --git a/of-save/ctl/conf/checkstyle/suppressions.xml b/of-save/ctl/conf/checkstyle/suppressions.xml
new file mode 100644
index 0000000..41dbe2d
--- /dev/null
+++ b/of-save/ctl/conf/checkstyle/suppressions.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
+
+<suppressions>
+ <!--
+ Note: Exclusion definition exists in multiple places.
+ - In file ${findbugs.excludeFilterFile} defined at top of pom.xml
+ - In file conf/checkstyle/onos_suppressions.xml (this file)
+ - maven-pmd-plugin configuration in pom.xml
+ (under build and reporting)
+ -->
+
+ <suppress files=".*" checks="FinalParametersCheck"/>
+ <suppress files=".*" checks="MagicNumbersCheck"/>
+ <suppress files=".*" checks="DesignForExtensionCheck"/>
+ <suppress files=".*" checks="TodoCommentCheck"/>
+ <suppress files=".*" checks="AvoidInlineConditionalsCheck"/>
+ <suppress files=".*" checks="OperatorWrapCheck"/>
+</suppressions>
+
diff --git a/of-save/ctl/conf/findbugs/exclude.xml b/of-save/ctl/conf/findbugs/exclude.xml
new file mode 100644
index 0000000..3a49335
--- /dev/null
+++ b/of-save/ctl/conf/findbugs/exclude.xml
@@ -0,0 +1,18 @@
+<FindBugsFilter>
+ <!--
+ Note: Exclusion definition exists in multiple places.
+ - In file ${findbugs.excludeFilterFile} defined at top of pom.xml (this file)
+ - In file conf/checkstyle/onos_suppressions.xml
+ - maven-pmd-plugin configuration in pom.xml
+ (under build and reporting)
+ -->
+ <Match>
+ <Class name="~net\.onrc\.onos\.core\.datastore\.serializers\..*" />
+ </Match>
+ <Match>
+ <Class name="~.*edu\.stanford\..*"/>
+ </Match>
+ <Match>
+ <Class name="~.org\.projectfloodlight\..*"/>
+ </Match>
+</FindBugsFilter>
diff --git a/of-save/ctl/old-pom.xml b/of-save/ctl/old-pom.xml
new file mode 100644
index 0000000..fcdc921
--- /dev/null
+++ b/of-save/ctl/old-pom.xml
@@ -0,0 +1,624 @@
+<?xml version="1.0"?>
+<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/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <prerequisites>
+ <maven>3.0.4</maven>
+ </prerequisites>
+ <groupId>net.onrc.onos.of.ctl</groupId>
+ <artifactId>io</artifactId>
+ <version>0.0.1</version>
+ <packaging>bundle</packaging>
+ <name>of-ctl</name>
+ <url>http://onlab.us/</url>
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ </license>
+ </licenses>
+ <repositories>
+ <repository>
+ <id>central</id>
+ <name>Maven Central repository</name>
+ <url>https://repo1.maven.org/maven2</url>
+ </repository>
+ <repository>
+ <id>maven-restlet</id>
+ <name>Public online Restlet repository</name>
+ <url>http://maven.restlet.org</url>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>sonatype-oss-snapshot</id>
+ <name>Sonatype OSS snapshot repository</name>
+ <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
+ <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>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ <version>1.15.0</version>
+ <executions>
+ <execution>
+ <id>generate-scr-srcdescriptor</id>
+ <goals>
+ <goal>scr</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <supportedProjectTypes>
+ <supportedProjectType>bundle</supportedProjectType>
+ <supportedProjectType>war</supportedProjectType>
+ </supportedProjectTypes>
+ </configuration>
+</plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.3.6</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
+ </instructions>
+ </configuration>
+ </plugin>
+ <!-- Note: the checkstyle configuration is also in the reporting section -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${checkstyle-plugin.version}</version>
+ <configuration>
+ <configLocation>${project.basedir}/conf/checkstyle/sun_checks.xml</configLocation>
+ <propertiesLocation>${project.basedir}/conf/checkstyle/checkstyle_maven.properties</propertiesLocation>
+ <failsOnError>false</failsOnError>
+ <logViolationsToConsole>true</logViolationsToConsole>
+ <includeTestSourceDirectory>true</includeTestSourceDirectory>
+ </configuration>
+ <executions>
+ <execution>
+ <id>validate-checkstyle</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>2.5.1</version>
+ <executions>
+ </executions>
+ </plugin>
+ <!-- guice maven plugin for dependency injection inside maven -->
+ <plugin>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>guice-maven-plugin</artifactId>
+ <version>2.11.0</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>2.5</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.6</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.3</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ <encoding>UTF-8</encoding>
+ <showDeprecation>true</showDeprecation>
+ <showWarnings>true</showWarnings>
+ <compilerArgs>
+ <arg>-Xlint:all</arg>
+ <arg>-Xlint:-serial</arg>
+ <arg>-Werror</arg>
+ </compilerArgs>
+ </configuration>
+ <executions>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${maven.surefire.plugin.version}</version>
+ <configuration>
+ <!-- FIXME -XX:-UseSplitVerifier added as workaround for JDK 1.7.0u65 + PowerMock issue
+ https://issues.jboss.org/browse/JASSIST-228 -->
+ <argLine>-XX:MaxPermSize=256m -XX:-UseSplitVerifier</argLine>
+ <redirectTestOutputToFile>false</redirectTestOutputToFile>
+ </configuration>
+ </plugin>
+ <!-- TODO exec:java no longer used remove at some point? -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <configuration>
+ <mainClass>net.onrc.onos.core.main.Main</mainClass>
+ </configuration>
+ <executions>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.9.1</version>
+ <configuration>
+ <charset>UTF-8</charset>
+ <locale>en</locale>
+ <author>false</author>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- Using groovy script to set maven property ${hostname}.
+ This is a workaround to get hostname as a property inside pom file,
+ which current Maven does not provide. -->
+ <groupId>org.codehaus.gmaven</groupId>
+ <artifactId>groovy-maven-plugin</artifactId>
+ <version>2.0</version>
+ <executions>
+ <execution>
+ <phase>initialize</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>
+ project.properties["hostname"] = InetAddress.getLocalHost().getHostName()
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.8</version>
+ <executions>
+ <execution>
+ <id>build-classpath</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>build-classpath</goal>
+ </goals>
+ <configuration>
+ <outputFile>${project.basedir}/.javacp.${hostname}</outputFile>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>${cobertura-maven-plugin.version}</version>
+ <configuration>
+ <instrumentation>
+ <ignores>
+ <ignore>org.slf4j.*</ignore>
+ </ignores>
+ </instrumentation>
+ <quiet>true</quiet>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- Note: the findbugs configuration is also in the reporting section -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>${findbugs-plugin.version}</version>
+ <configuration>
+ <effort>${findbugs.effort}</effort>
+ <excludeFilterFile>${findbugs.excludeFilterFile}</excludeFilterFile>
+ </configuration>
+ <executions>
+ <execution>
+ <id>validate-findbugs</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <!--
+ Note: Exclusion definition exists in multiple places.
+ - In file ${findbugs.excludeFilterFile} defined at top of pom.xml
+ - In file conf/checkstyle/onos_suppressions.xml
+ - maven-pmd-plugin configuration in pom.xml
+ (under build and reporting)
+ -->
+ <rulesets>
+ <ruleset>${basedir}/conf/pmd/ruleset.xml</ruleset>
+ </rulesets>
+ </configuration>
+ <executions>
+ <execution>
+ <id>validate-pmd</id>
+ <phase>verify</phase>
+ <goals>
+ <!-- Uncomment this goal to make the build fail on pmd errors -->
+ <!--<goal>check</goal>-->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <!--This plugin's configuration is used to store Eclipse m2e settings
+ only. It has no influence on the Maven build itself. -->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.apache.maven.plugins
+ </groupId>
+ <artifactId>
+ maven-dependency-plugin
+ </artifactId>
+ <versionRange>[2.8,)</versionRange>
+ <goals>
+ <goal>build-classpath</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.codehaus.gmaven</groupId>
+ <artifactId>groovy-maven-plugin</artifactId>
+ <versionRange>[2.0,)</versionRange>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <!-- for getting visualization reporting -->
+ <reporting>
+ <excludeDefaults>true</excludeDefaults>
+ <outputDirectory>${project.build.directory}/site</outputDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.7</version>
+ <configuration>
+ <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
+ <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+ </configuration>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>dependencies</report>
+ <report>scm</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.9.1</version>
+ <configuration>
+ <charset>UTF-8</charset>
+ <locale>en</locale>
+ <author>false</author>
+ <excludePackageNames>net.floodlightcontroller.*:net.onrc.onos.core.datastore.serializers</excludePackageNames>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- Note: the checkstyle configuration is also in the build section -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${checkstyle-plugin.version}</version>
+ <configuration>
+ <configLocation>conf/checkstyle/sun_checks.xml</configLocation>
+ <!--
+ Note: Exclusion definition exists in multiple places.
+ - In file ${findbugs.excludeFilterFile} defined at top of pom.xml
+ - maven-checkstyle-plugin configuration in pom.xml
+ - maven-pmd-plugin configuration in pom.xml
+ (under build and reporting)
+ -->
+ <propertiesLocation>${basedir}/conf/checkstyle/checkstyle_maven.properties</propertiesLocation>
+ <includeTestSourceDirectory>true</includeTestSourceDirectory>
+ </configuration>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>checkstyle</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ <!-- Note: the findbugs configuration is also in the build section -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>${findbugs-plugin.version}</version>
+ <configuration>
+ <effort>${findbugs.effort}</effort>
+ <excludeFilterFile>${findbugs.excludeFilterFile}</excludeFilterFile>
+ <reportPlugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ </plugin>
+ </reportPlugins>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <!--
+ Note: Exclusion definition exists in multiple places.
+ - In file ${findbugs.excludeFilterFile} defined at top of pom.xml
+ - In file conf/checkstyle/onos_suppressions.xml
+ - maven-pmd-plugin configuration in pom.xml
+ (under build and reporting)
+ -->
+ <excludes>
+ <exclude>**/datastore/serializers/**</exclude>
+ <exclude>**/edu/stanford/**</exclude>
+ <exclude>**/net/floodlightcontroller/**</exclude>
+ </excludes>
+ <rulesets>
+ <ruleset>${basedir}/conf/pmd/onos_ruleset.xml</ruleset>
+ </rulesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>${cobertura-maven-plugin.version}</version>
+ </plugin>
+ </plugins>
+ </reporting>
+ <dependencies>
+ <!-- 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.6-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>
+ <profiles>
+ <!-- Jenkins by default defines a property BUILD_NUMBER which is used to
+ enable the profile. -->
+ <profile>
+ <id>jenkins</id>
+ <activation>
+ <property>
+ <name>env.BUILD_NUMBER</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>${cobertura-maven-plugin.version}</version>
+ <configuration>
+ <formats>
+ <format>xml</format>
+ </formats>
+ <quiet>true</quiet>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>cobertura</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>all-tests</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${maven.surefire.plugin.version}</version>
+ <configuration combine.self="merge">
+ <excludedGroups></excludedGroups>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>error-prone</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <compilerArgs combine.children="append">
+ <!-- FIXME -Xlint:-path required when using findbugs + error-prone -->
+ <arg>-Xlint:-path</arg>
+ </compilerArgs>
+ <!-- Turn on error-prone -->
+ <compilerId>javac-with-errorprone</compilerId>
+ <forceJavacCompilerUse>true</forceJavacCompilerUse>
+ </configuration>
+ <dependencies combine.children="append">
+ <dependency>
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_core</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-compiler-javac</artifactId>
+ <version>2.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-compiler-javac-errorprone</artifactId>
+ <version>2.3</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitch.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitch.java
new file mode 100644
index 0000000..8015f3f
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitch.java
@@ -0,0 +1,582 @@
+/**
+ * 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 net.onrc.onos.of.ctl;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Future;
+
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterException;
+import net.onrc.onos.of.ctl.util.OrderedCollection;
+
+import org.jboss.netty.channel.Channel;
+import org.projectfloodlight.openflow.protocol.OFActionType;
+import org.projectfloodlight.openflow.protocol.OFCapabilities;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+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.OFPortStatus;
+import org.projectfloodlight.openflow.protocol.OFStatsReply;
+import org.projectfloodlight.openflow.protocol.OFStatsRequest;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.projectfloodlight.openflow.types.U64;
+
+
+public interface IOFSwitch {
+
+ /**
+ * OF1.3 switches should support role-request messages as in the 1.3 spec.
+ * OF1.0 switches may or may not support the Nicira role request extensions.
+ * To indicate the support, this property should be set by the associated
+ * OF1.0 switch driver in the net.onrc.onos.core.drivermanager package.
+ * The property will be ignored for OF1.3 switches.
+ */
+ public static final String SWITCH_SUPPORTS_NX_ROLE = "supportsNxRole";
+
+
+ //************************
+ // Channel related
+ //************************
+
+ /**
+ * Disconnects the switch by closing the TCP connection. Results in a call
+ * to the channel handler's channelDisconnected method for cleanup
+ * @throws IOException
+ */
+ public void disconnectSwitch();
+
+ /**
+ * Writes to the OFMessage to the output stream.
+ *
+ * @param m
+ * @param bc
+ * @throws IOException
+ */
+ public void write(OFMessage m) throws IOException;
+
+ /**
+ * Writes the list of messages to the output stream.
+ *
+ * @param msglist
+ * @param bc
+ * @throws IOException
+ */
+ public void write(List<OFMessage> msglist) throws IOException;
+
+ /**
+ * Gets the date the switch connected to this controller.
+ *
+ * @return the date
+ */
+ public Date getConnectedSince();
+
+ /**
+ * Gets the next available transaction id.
+ *
+ * @return the next transaction ID
+ */
+ public int getNextTransactionId();
+
+ /**
+ * Checks if the switch is still connected.
+ * Only call while holding processMessageLock
+ *
+ * @return whether the switch is still disconnected
+ */
+ public boolean isConnected();
+
+ /**
+ * Sets whether the switch is connected.
+ * Only call while holding modifySwitchLock
+ *
+ * @param connected whether the switch is connected
+ */
+ public void setConnected(boolean connected);
+
+ /**
+ * Flushes all flows queued for this switch in the current thread.
+ * NOTE: The contract is limited to the current thread
+ */
+ public void flush();
+
+ /**
+ * Sets the Netty Channel this switch instance is associated with.
+ * <p>
+ * Called immediately after instantiation
+ *
+ * @param channel the channel
+ */
+ public void setChannel(Channel channel);
+
+ //************************
+ // Switch features related
+ //************************
+
+ /**
+ * Gets the datapathId of the switch.
+ *
+ * @return the switch buffers
+ */
+ public long getId();
+
+ /**
+ * Gets a string version of the ID for this switch.
+ *
+ * @return string version of the ID
+ */
+ public String getStringId();
+
+ /**
+ * Gets the number of buffers.
+ *
+ * @return the number of buffers
+ */
+ public int getNumBuffers();
+
+ public Set<OFCapabilities> getCapabilities();
+
+ public byte getNumTables();
+
+ /**
+ * Returns an OFDescStatsReply message object. Use the methods contained
+ * to retrieve switch descriptions for Manufacturer, Hw/Sw version etc.
+ */
+ public OFDescStatsReply getSwitchDescription();
+
+ /**
+ * Cancel features reply with a specific transaction ID.
+ * @param transactionId the transaction ID
+ */
+ public void cancelFeaturesReply(int transactionId);
+
+ /**
+ * Gets the OFActionType set.
+ * <p>
+ * getActions has relevance only for an OpenFlow 1.0 switch.
+ * For OF1.3, each table can support different actions
+ *
+ * @return the action set
+ */
+ public Set<OFActionType> getActions();
+
+ public void setOFVersion(OFVersion ofv);
+
+ public OFVersion getOFVersion();
+
+
+ //************************
+ // Switch port related
+ //************************
+
+ /**
+ * the type of change that happened to an open flow port.
+ */
+ public enum PortChangeType {
+ /** Either a new port has been added by the switch, or we are
+ * adding a port we just deleted (via a prior notification) due to
+ * a change in the portNumber-portName mapping.
+ */
+ ADD,
+ /** some other feature of the port has changed (eg. speed)*/
+ OTHER_UPDATE,
+ /** Either a port has been deleted by the switch, or we are deleting
+ * a port whose portNumber-portName mapping has changed. Note that in
+ * the latter case, a subsequent notification will be sent out to add a
+ * port with the new portNumber-portName mapping.
+ */
+ DELETE,
+ /** Port is up (i.e. enabled). Presumably an earlier notification had
+ * indicated that it was down. To be UP implies that the port is
+ * administratively considered UP (see ofp_port_config) AND the port
+ * link is up AND the port is no longer blocked (see ofp_port_state).
+ */
+ UP,
+ /** Port is down (i.e. disabled). Presumably an earlier notification had
+ * indicated that it was up, or the port was always up.
+ * To be DOWN implies that the port has been either
+ * administratively brought down (see ofp_port_config) OR the port
+ * link is down OR the port is blocked (see ofp_port_state).
+ */
+ DOWN,
+ }
+
+ /**
+ * Describes a change of an open flow port.
+ */
+ public static class PortChangeEvent {
+ public final OFPortDesc port;
+ public final PortChangeType type;
+ /**
+ * @param port
+ * @param type
+ */
+ public PortChangeEvent(OFPortDesc port,
+ PortChangeType type) {
+ this.port = port;
+ this.type = type;
+ }
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((port == null) ? 0 : port.hashCode());
+ result = prime * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ PortChangeEvent other = (PortChangeEvent) obj;
+ if (port == null) {
+ if (other.port != null) {
+ return false;
+ }
+ } else if (!port.equals(other.port)) {
+ return false;
+ }
+ if (type != other.type) {
+ return false;
+ }
+ return true;
+ }
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ return "[" + type + " " + port.toString() + "]";
+ }
+ }
+
+
+ /**
+ * Get list of all enabled ports. This will typically be different from
+ * the list of ports in the OFFeaturesReply, since that one is a static
+ * snapshot of the ports at the time the switch connected to the controller
+ * whereas this port list also reflects the port status messages that have
+ * been received.
+ *
+ * @return Unmodifiable list of ports not backed by the underlying collection
+ */
+ public Collection<OFPortDesc> getEnabledPorts();
+
+ /**
+ * Get list of the port numbers of all enabled ports. This will typically
+ * be different from the list of ports in the OFFeaturesReply, since that
+ * one is a static snapshot of the ports at the time the switch connected
+ * to the controller whereas this port list also reflects the port status
+ * messages that have been received.
+ *
+ * @return Unmodifiable list of ports not backed by the underlying collection
+ */
+ public Collection<Integer> getEnabledPortNumbers();
+
+ /**
+ * Retrieve the port object by the port number. The port object
+ * is the one that reflects the port status updates that have been
+ * received, not the one from the features reply.
+ *
+ * @param portNumber
+ * @return port object
+ */
+ public OFPortDesc getPort(int portNumber);
+
+ /**
+ * Retrieve the port object by the port name. The port object
+ * is the one that reflects the port status updates that have been
+ * received, not the one from the features reply.
+ *
+ * @param portName
+ * @return port object
+ */
+ public OFPortDesc getPort(String portName);
+
+ /**
+ * Add or modify a switch port. This is called by the core controller
+ * code in response to a OFPortStatus message.
+ *
+ * OFPPR_MODIFY and OFPPR_ADD will be treated as equivalent. The OpenFlow
+ * spec is not clear on whether portNames are portNumbers are considered
+ * authoritative identifiers. We treat portNames <-> portNumber mappings
+ * as fixed. If they change, we delete all previous conflicting ports and
+ * add all new ports.
+ *
+ * @param ps the port status message
+ * @return the ordered Collection of changes "applied" to the old ports
+ * of the switch according to the PortStatus message. A single PortStatus
+ * message can result in multiple changes.
+ * If portName <-> portNumber mappings have
+ * changed, the iteration order ensures that delete events for old
+ * conflicting appear before before events adding new ports
+ */
+ public OrderedCollection<PortChangeEvent> processOFPortStatus(OFPortStatus ps);
+
+ /**
+ * Get list of all ports. This will typically be different from
+ * the list of ports in the OFFeaturesReply, since that one is a static
+ * snapshot of the ports at the time the switch connected to the controller
+ * whereas this port list also reflects the port status messages that have
+ * been received.
+ *
+ * @return Unmodifiable list of ports
+ */
+ public Collection<OFPortDesc> getPorts();
+
+ /**
+ * @param portName
+ * @return Whether a port is enabled per latest port status message
+ * (not configured down nor link down nor in spanning tree blocking state)
+ */
+ public boolean portEnabled(int portName);
+
+ /**
+ * @param portNumber
+ * @return Whether a port is enabled per latest port status message
+ * (not configured down nor link down nor in spanning tree blocking state)
+ */
+ public boolean portEnabled(String portName);
+
+ /**
+ * Compute the changes that would be required to replace the old ports
+ * of this switch with the new ports.
+ * @param ports new ports to set
+ * @return the ordered collection of changes "applied" to the old ports
+ * of the switch in order to set them to the new set.
+ * If portName <-> portNumber mappings have
+ * changed, the iteration order ensures that delete events for old
+ * conflicting appear before before events adding new ports
+ */
+ public OrderedCollection<PortChangeEvent>
+ comparePorts(Collection<OFPortDesc> ports);
+
+ /**
+ * Replace the ports of this switch with the given ports.
+ * @param ports new ports to set
+ * @return the ordered collection of changes "applied" to the old ports
+ * of the switch in order to set them to the new set.
+ * If portName <-> portNumber mappings have
+ * changed, the iteration order ensures that delete events for old
+ * conflicting appear before before events adding new ports
+ */
+ public OrderedCollection<PortChangeEvent>
+ setPorts(Collection<OFPortDesc> ports);
+
+ //*******************************************
+ // IOFSwitch object attributes
+ //************************
+
+ /**
+ * Gets attributes of this switch.
+ *
+ * @return attributes of the switch
+ */
+ public Map<Object, Object> getAttributes();
+
+ /**
+ * Checks if a specific switch property exists for this switch.
+ *
+ * @param name name of property
+ * @return value for name
+ */
+ boolean hasAttribute(String name);
+
+ /**
+ * Gets properties for switch specific behavior.
+ *
+ * @param name name of property
+ * @return 'value' for 'name', or null if no entry for 'name' exists
+ */
+ Object getAttribute(String name);
+
+ /**
+ * Sets properties for switch specific behavior.
+ *
+ * @param name name of property
+ * @param value value for name
+ */
+ void setAttribute(String name, Object value);
+
+ /**
+ * Removes properties for switch specific behavior.
+ *
+ * @param name name of property
+ * @return current value for name or null (if not present)
+ */
+ Object removeAttribute(String name);
+
+ //************************
+ // Switch statistics
+ //************************
+
+ /**
+ * Delivers the statistics future reply.
+ *
+ * @param reply the reply to deliver
+ */
+ public void deliverStatisticsReply(OFMessage reply);
+
+ /**
+ * Cancels the statistics reply with the given transaction ID.
+ *
+ * @param transactionId the transaction ID
+ */
+ public void cancelStatisticsReply(int transactionId);
+
+ /**
+ * Cancels all statistics replies.
+ */
+ public void cancelAllStatisticsReplies();
+
+ /**
+ * Gets a Future object that can be used to retrieve the asynchronous.
+ * OFStatisticsReply when it is available.
+ *
+ * @param request statistics request
+ * @return Future object wrapping OFStatisticsReply
+ * @throws IOException
+ */
+ public Future<List<OFStatsReply>> getStatistics(OFStatsRequest<?> request)
+ throws IOException;
+
+ //************************
+ // Switch other utilities
+ //************************
+
+ /**
+ * Clears all flowmods on this switch.
+ */
+ public void clearAllFlowMods();
+
+ /**
+ * Gets the current role of this controller for this IOFSwitch.
+ */
+ public Role getRole();
+
+ /**
+ * Sets this controller's Role for this IOFSwitch to role.
+ *
+ * @param role
+ */
+ public void setRole(Role role);
+
+ /**
+ * Gets the next generation ID.
+ * <p>
+ * Note: relevant for role request messages in OF1.3
+ *
+ * @return next generation ID
+ */
+ public U64 getNextGenerationId();
+
+
+ /**
+ * Set debug counter service for per-switch counters.
+ * Called immediately after instantiation.
+ * @param debugCounters
+ * @throws CounterException
+ */
+ public void setDebugCounterService(IDebugCounterService debugCounter)
+ throws CounterException;
+
+ /**
+ * Start this switch driver's sub handshake. This might be a no-op but
+ * this method must be called at least once for the switch to be become
+ * ready.
+ * This method must only be called from the I/O thread
+ * @throws IOException
+ * @throws SwitchDriverSubHandshakeAlreadyStarted if the sub-handshake has
+ * already been started
+ */
+ public void startDriverHandshake() throws IOException;
+
+ /**
+ * Check if the sub-handshake for this switch driver has been completed.
+ * This method can only be called after startDriverHandshake()
+ *
+ * This methods must only be called from the I/O thread
+ * @return true if the sub-handshake has been completed. False otherwise
+ * @throws SwitchDriverSubHandshakeNotStarted if startDriverHandshake() has
+ * not been called yet.
+ */
+ public boolean isDriverHandshakeComplete();
+
+ /**
+ * Pass the given OFMessage to the driver as part of this driver's
+ * sub-handshake. Must not be called after the handshake has been completed
+ * This methods must only be called from the I/O thread
+ * @param m The message that the driver should process
+ * @throws SwitchDriverSubHandshakeCompleted if isDriverHandshake() returns
+ * false before this method call
+ * @throws SwitchDriverSubHandshakeNotStarted if startDriverHandshake() has
+ * not been called yet.
+ */
+ public void processDriverHandshakeMessage(OFMessage m);
+
+ /**
+ * Set the flow table full flag in the switch.
+ * XXX S Rethink this for multiple tables
+ */
+ public void setTableFull(boolean isFull);
+
+ /**
+ * Save the features reply for this switch.
+ *
+ * @param featuresReply
+ */
+ public void setFeaturesReply(OFFeaturesReply featuresReply);
+
+ /**
+ * Save the portset for this switch.
+ *
+ * @param portDescReply
+ */
+ public void setPortDescReply(OFPortDescStatsReply portDescReply);
+
+ //************************
+ // Message handling
+ //************************
+ /**
+ * Handle the message coming from the dataplane.
+ *
+ * @param m the actual message
+ */
+ public void handleMessage(OFMessage m);
+
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitchManager.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitchManager.java
new file mode 100644
index 0000000..b3b8ed3
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/IOFSwitchManager.java
@@ -0,0 +1,33 @@
+package net.onrc.onos.of.ctl;
+
+import org.projectfloodlight.openflow.protocol.OFVersion;
+
+import net.onrc.onos.of.ctl.registry.IControllerRegistry;
+
+/**
+ * Interface to passed to controller class in order to allow
+ * it to spawn the appropriate type of switch and furthermore
+ * specify a registry object (ie. ZooKeeper).
+ *
+ */
+public interface IOFSwitchManager {
+
+ /**
+ * Given a description string for a switch spawn the
+ * concrete representation of that switch.
+ *
+ * @param mfr manufacturer description
+ * @param hwDesc hardware description
+ * @param swDesc software description
+ * @param ofv openflow version
+ * @return A switch of type IOFSwitch.
+ */
+ public IOFSwitch getSwitchImpl(String mfr, String hwDesc, String swDesc, OFVersion ofv);
+
+ /**
+ * Returns the mastership registry used during controller-switch role election.
+ * @return the registry
+ */
+ public IControllerRegistry getRegistry();
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/Role.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/Role.java
new file mode 100644
index 0000000..d892161
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/Role.java
@@ -0,0 +1,36 @@
+package net.onrc.onos.of.ctl;
+
+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 Role {
+ EQUAL(OFControllerRole.ROLE_EQUAL),
+ MASTER(OFControllerRole.ROLE_MASTER),
+ SLAVE(OFControllerRole.ROLE_SLAVE);
+
+ private Role(OFControllerRole nxRole) {
+ nxRole.ordinal();
+ }
+ /*
+ private static Map<Integer,Role> nxRoleToEnum
+ = new HashMap<Integer,Role>();
+ static {
+ for(Role r: Role.values())
+ nxRoleToEnum.put(r.toNxRole(), r);
+ }
+ public int toNxRole() {
+ return nxRole;
+ }
+ // Return the enum representing the given nxRole or null if no
+ // such role exists
+ public static Role fromNxRole(int nxRole) {
+ return nxRoleToEnum.get(nxRole);
+ }*/
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageCategory.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageCategory.java
new file mode 100644
index 0000000..37ac321
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageCategory.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright 2012, 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 net.onrc.onos.of.ctl.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation used to set the category for log messages for a class.
+ *
+ */
+@Target({ ElementType.TYPE, ElementType.METHOD })
+public @interface LogMessageCategory {
+
+ /**
+ * The category for the log messages for this class.
+ *
+ * @return
+ */
+ String value() default "Core";
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDoc.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDoc.java
new file mode 100644
index 0000000..313e074
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDoc.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright 2012, 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 net.onrc.onos.of.ctl.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation used to document log messages. This can be used to generate
+ * documentation on syslog output.
+ *
+ */
+@Target({ ElementType.TYPE, ElementType.METHOD })
+public @interface LogMessageDoc {
+ public static final String NO_ACTION = "No action is required.";
+ public static final String UNKNOWN_ERROR = "An unknown error occured";
+ public static final String GENERIC_ACTION =
+ "Examine the returned error or exception and take " +
+ "appropriate action.";
+ public static final String CHECK_SWITCH =
+ "Check the health of the indicated switch. " +
+ "Test and troubleshoot IP connectivity.";
+ public static final String CHECK_CONTROLLER =
+ "Verify controller system health, CPU usage, and memory. " +
+ "Rebooting the controller node may help if the controller " +
+ "node is in a distressed state.";
+ public static final String REPORT_CONTROLLER_BUG =
+ "This is likely a defect in the controller. Please report this " +
+ "issue. Restarting the controller or switch may help to " +
+ "alleviate.";
+ public static final String REPORT_SWITCH_BUG =
+ "This is likely a defect in the switch. Please report this " +
+ "issue. Restarting the controller or switch may help to " +
+ "alleviate.";
+
+ /**
+ * The log level for the log message.
+ *
+ * @return the log level as a tring
+ */
+ String level() default "INFO";
+
+ /**
+ * The message that will be printed.
+ *
+ * @return the message
+ */
+ String message() default UNKNOWN_ERROR;
+
+ /**
+ * An explanation of the meaning of the log message.
+ *
+ * @return the explanation
+ */
+ String explanation() default UNKNOWN_ERROR;
+
+ /**
+ * The recommendated action associated with the log message.
+ *
+ * @return the recommendation
+ */
+ String recommendation() default NO_ACTION;
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDocs.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDocs.java
new file mode 100644
index 0000000..74d4405
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/annotations/LogMessageDocs.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright 2012, 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 net.onrc.onos.of.ctl.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation used to document log messages. This can be used to generate
+ * documentation on syslog output. This version allows multiple log messages
+ * to be documentated on an interface.
+ *
+ */
+@Target({ ElementType.TYPE, ElementType.METHOD })
+public @interface LogMessageDocs {
+ /**
+ * A list of {@link LogMessageDoc} elements.
+ *
+ * @return the list of log message doc
+ */
+ LogMessageDoc[] value();
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/DebugCounter.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/DebugCounter.java
new file mode 100644
index 0000000..6ea380c
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/DebugCounter.java
@@ -0,0 +1,726 @@
+package net.onrc.onos.of.ctl.debugcounter;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+import com.google.common.collect.Sets;
+
+
+
+/**
+ * This class implements a central store for all counters used for debugging the
+ * system. For counters based on traffic-type, see ICounterStoreService.
+ *
+ */
+public class DebugCounter implements IDebugCounterService {
+ protected static final Logger log = LoggerFactory.getLogger(DebugCounter.class);
+
+ /**
+ * registered counters need a counter id.
+ */
+ protected AtomicInteger counterIdCounter = new AtomicInteger();
+
+ /**
+ * The counter value.
+ */
+ protected static class MutableLong {
+ long value = 0;
+ public void increment() { value += 1; }
+ public void increment(long incr) { value += incr; }
+ public long get() { return value; }
+ public void set(long val) { value = val; }
+ }
+
+ /**
+ * protected class to store counter information.
+ */
+ public static class CounterInfo {
+ String moduleCounterHierarchy;
+ String counterDesc;
+ CounterType ctype;
+ String moduleName;
+ String counterHierarchy;
+ int counterId;
+ boolean enabled;
+ String[] metaData;
+
+ public CounterInfo(int counterId, boolean enabled,
+ String moduleName, String counterHierarchy,
+ String desc, CounterType ctype, String... metaData) {
+ this.moduleCounterHierarchy = moduleName + "/" + counterHierarchy;
+ this.moduleName = moduleName;
+ this.counterHierarchy = counterHierarchy;
+ this.counterDesc = desc;
+ this.ctype = ctype;
+ this.counterId = counterId;
+ this.enabled = enabled;
+ this.metaData = metaData;
+ }
+
+ public String getModuleCounterHierarchy() { return moduleCounterHierarchy; }
+ public String getCounterDesc() { return counterDesc; }
+ public CounterType getCtype() { return ctype; }
+ public String getModuleName() { return moduleName; }
+ public String getCounterHierarchy() { return counterHierarchy; }
+ public int getCounterId() { return counterId; }
+ public boolean isEnabled() { return enabled; }
+ public String[] getMetaData() { return this.metaData.clone(); }
+ }
+
+ //******************
+ // Global stores
+ //******************
+
+ /**
+ * Counter info for a debug counter.
+ */
+ public static class DebugCounterInfo {
+ CounterInfo cinfo;
+ AtomicLong cvalue;
+
+ public DebugCounterInfo(CounterInfo cinfo) {
+ this.cinfo = cinfo;
+ this.cvalue = new AtomicLong();
+ }
+ public CounterInfo getCounterInfo() {
+ return cinfo;
+ }
+ public Long getCounterValue() {
+ return cvalue.get();
+ }
+ }
+
+ /**
+ * Global debug-counter storage across all threads. These are
+ * updated from the local per thread counters by the flush counters method.
+ */
+ private static final DebugCounterInfo[] ALLCOUNTERS =
+ new DebugCounterInfo[MAX_COUNTERS];
+
+
+ /**
+ * per module counters, indexed by the module name and storing three levels
+ * of Counter information in the form of CounterIndexStore.
+ */
+ protected ConcurrentHashMap<String, ConcurrentHashMap<String, CounterIndexStore>>
+ moduleCounters = new ConcurrentHashMap<String,
+ ConcurrentHashMap<String,
+ CounterIndexStore>>();
+
+ protected static class CounterIndexStore {
+ int index;
+ Map<String, CounterIndexStore> nextLevel;
+
+ public CounterIndexStore(int index, Map<String, CounterIndexStore> cis) {
+ this.index = index;
+ this.nextLevel = cis;
+ }
+ }
+
+ /**
+ * fast global cache for counter ids that are currently active.
+ */
+ protected Set<Integer> currentCounters = Collections.newSetFromMap(
+ new ConcurrentHashMap<Integer, Boolean>());
+
+ //******************
+ // Thread local stores
+ //******************
+
+ /**
+ * Thread local storage of counter info.
+ */
+ protected static class LocalCounterInfo {
+ boolean enabled;
+ MutableLong cvalue;
+
+ public LocalCounterInfo(boolean enabled) {
+ this.enabled = enabled;
+ this.cvalue = new MutableLong();
+ }
+ }
+
+ /**
+ * Thread local debug counters used for maintaining counters local to a thread.
+ */
+ protected final ThreadLocal<LocalCounterInfo[]> threadlocalCounters =
+ new ThreadLocal<LocalCounterInfo[]>() {
+ @Override
+ protected LocalCounterInfo[] initialValue() {
+ return new LocalCounterInfo[MAX_COUNTERS];
+ }
+ };
+
+ /**
+ * Thread local cache for counter ids that are currently active.
+ */
+ protected final ThreadLocal<Set<Integer>> threadlocalCurrentCounters =
+ new ThreadLocal<Set<Integer>>() {
+ @Override
+ protected Set<Integer> initialValue() {
+ return new HashSet<Integer>();
+ }
+ };
+
+ //*******************************
+ // IDebugCounter
+ //*******************************
+
+ protected class CounterImpl implements IDebugCounter {
+ private final int counterId;
+
+ public CounterImpl(int counterId) {
+ this.counterId = counterId;
+ }
+
+ @Override
+ public void updateCounterWithFlush() {
+ if (!validCounterId()) {
+ return;
+ }
+ updateCounter(counterId, 1, true);
+ }
+
+ @Override
+ public void updateCounterNoFlush() {
+ if (!validCounterId()) {
+ return;
+ }
+ updateCounter(counterId, 1, false);
+ }
+
+ @Override
+ public void updateCounterWithFlush(int incr) {
+ if (!validCounterId()) {
+ return;
+ }
+ updateCounter(counterId, incr, true);
+ }
+
+ @Override
+ public void updateCounterNoFlush(int incr) {
+ if (!validCounterId()) {
+ return;
+ }
+ updateCounter(counterId, incr, false);
+ }
+
+ @Override
+ public long getCounterValue() {
+ if (!validCounterId()) {
+ return -1;
+ }
+ return ALLCOUNTERS[counterId].cvalue.get();
+ }
+
+ /**
+ * Checks if this is a valid counter.
+ * @return true if the counter id is valid
+ */
+ private boolean validCounterId() {
+ if (counterId < 0 || counterId >= MAX_COUNTERS) {
+ log.error("Invalid counterId invoked");
+ return false;
+ }
+ return true;
+ }
+
+ }
+
+ //*******************************
+ // IDebugCounterService
+ //*******************************
+
+ @Override
+ public IDebugCounter registerCounter(String moduleName, String counterHierarchy,
+ String counterDescription, CounterType counterType,
+ String... metaData)
+ throws CounterException {
+ // check if counter already exists
+ if (!moduleCounters.containsKey(moduleName)) {
+ moduleCounters.putIfAbsent(moduleName,
+ new ConcurrentHashMap<String, CounterIndexStore>());
+ }
+ RetCtrInfo rci = getCounterId(moduleName, counterHierarchy);
+ if (rci.allLevelsFound) {
+ // counter exists
+ log.info("Counter exists for {}/{} -- resetting counters", moduleName,
+ counterHierarchy);
+ resetCounterHierarchy(moduleName, counterHierarchy);
+ return new CounterImpl(rci.ctrIds[rci.foundUptoLevel - 1]);
+ }
+ // check for validity of counter
+ if (rci.levels.length > MAX_HIERARCHY) {
+ String err = "Registry of counterHierarchy " + counterHierarchy +
+ " exceeds max hierachy " + MAX_HIERARCHY + ".. aborting";
+ throw new MaxHierarchyRegistered(err);
+ }
+ if (rci.foundUptoLevel < rci.levels.length - 1) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i <= rci.foundUptoLevel; i++) {
+ sb.append(rci.levels[i]);
+ }
+ String needToRegister = sb.toString();
+ String err = "Attempting to register hierarchical counterHierarchy " +
+ counterHierarchy + " but parts of hierarchy missing. " +
+ "Please register " + needToRegister + " first";
+ throw new MissingHierarchicalLevel(err);
+ }
+
+ // get a new counter id
+ int counterId = counterIdCounter.getAndIncrement();
+ if (counterId >= MAX_COUNTERS) {
+ throw new MaxCountersRegistered("max counters reached");
+ }
+ // create storage for counter
+ boolean enabled = (counterType == CounterType.ALWAYS_COUNT) ? true : false;
+ CounterInfo ci = new CounterInfo(counterId, enabled, moduleName,
+ counterHierarchy, counterDescription,
+ counterType, metaData);
+ ALLCOUNTERS[counterId] = new DebugCounterInfo(ci);
+
+ // account for the new counter in the module counter hierarchy
+ addToModuleCounterHierarchy(moduleName, counterId, rci);
+
+ // finally add to active counters
+ if (enabled) {
+ currentCounters.add(counterId);
+ }
+ return new CounterImpl(counterId);
+ }
+
+ private void updateCounter(int counterId, int incr, boolean flushNow) {
+ if (counterId < 0 || counterId >= MAX_COUNTERS) {
+ return;
+ }
+
+ LocalCounterInfo[] thiscounters = this.threadlocalCounters.get();
+ if (thiscounters[counterId] == null) {
+ // seeing this counter for the first time in this thread - create local
+ // store by consulting global store
+ DebugCounterInfo dc = ALLCOUNTERS[counterId];
+ if (dc != null) {
+ thiscounters[counterId] = new LocalCounterInfo(dc.cinfo.enabled);
+ if (dc.cinfo.enabled) {
+ Set<Integer> thisset = this.threadlocalCurrentCounters.get();
+ thisset.add(counterId);
+ }
+ } else {
+ log.error("updateCounter seen locally for counter {} but no global"
+ + "storage exists for it yet .. not updating", counterId);
+ return;
+ }
+ }
+
+ // update local store if enabled locally for updating
+ LocalCounterInfo lc = thiscounters[counterId];
+ if (lc.enabled) {
+ lc.cvalue.increment(incr);
+ if (flushNow) {
+ DebugCounterInfo dc = ALLCOUNTERS[counterId];
+ if (dc.cinfo.enabled) {
+ // globally enabled - flush now
+ dc.cvalue.addAndGet(lc.cvalue.get());
+ lc.cvalue.set(0);
+ } else {
+ // global counter is disabled - don't flush, disable locally
+ lc.enabled = false;
+ Set<Integer> thisset = this.threadlocalCurrentCounters.get();
+ thisset.remove(counterId);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void flushCounters() {
+ LocalCounterInfo[] thiscounters = this.threadlocalCounters.get();
+ Set<Integer> thisset = this.threadlocalCurrentCounters.get();
+ ArrayList<Integer> temp = new ArrayList<Integer>();
+
+ for (int counterId : thisset) {
+ LocalCounterInfo lc = thiscounters[counterId];
+ if (lc.cvalue.get() > 0) {
+ DebugCounterInfo dc = ALLCOUNTERS[counterId];
+ if (dc.cinfo.enabled) {
+ // globally enabled - flush now
+ dc.cvalue.addAndGet(lc.cvalue.get());
+ lc.cvalue.set(0);
+ } else {
+ // global counter is disabled - don't flush, disable locally
+ lc.enabled = false;
+ temp.add(counterId);
+ }
+ }
+ }
+ for (int cId : temp) {
+ thisset.remove(cId);
+ }
+
+ // At this point it is possible that the thread-local set does not
+ // include a counter that has been enabled and is present in the global set.
+ // We need to sync thread-local currently enabled set of counterIds with
+ // the global set.
+ Sets.SetView<Integer> sv = Sets.difference(currentCounters, thisset);
+ for (int counterId : sv) {
+ if (thiscounters[counterId] != null) {
+ thiscounters[counterId].enabled = true;
+ thisset.add(counterId);
+ }
+ }
+ }
+
+ @Override
+ public void resetCounterHierarchy(String moduleName, String counterHierarchy) {
+ RetCtrInfo rci = getCounterId(moduleName, counterHierarchy);
+ if (!rci.allLevelsFound) {
+ String missing = rci.levels[rci.foundUptoLevel];
+ log.error("Cannot reset counter hierarchy - missing counter {}", missing);
+ return;
+ }
+ // reset at this level
+ ALLCOUNTERS[rci.ctrIds[rci.foundUptoLevel - 1]].cvalue.set(0);
+ // reset all levels below
+ ArrayList<Integer> resetIds = getHierarchyBelow(moduleName, rci);
+ for (int index : resetIds) {
+ ALLCOUNTERS[index].cvalue.set(0);
+ }
+ }
+
+ @Override
+ public void resetAllCounters() {
+ RetCtrInfo rci = new RetCtrInfo();
+ rci.levels = "".split("/");
+ for (String moduleName : moduleCounters.keySet()) {
+ ArrayList<Integer> resetIds = getHierarchyBelow(moduleName, rci);
+ for (int index : resetIds) {
+ ALLCOUNTERS[index].cvalue.set(0);
+ }
+ }
+ }
+
+ @Override
+ public void resetAllModuleCounters(String moduleName) {
+ Map<String, CounterIndexStore> target = moduleCounters.get(moduleName);
+ RetCtrInfo rci = new RetCtrInfo();
+ rci.levels = "".split("/");
+
+ if (target != null) {
+ ArrayList<Integer> resetIds = getHierarchyBelow(moduleName, rci);
+ for (int index : resetIds) {
+ ALLCOUNTERS[index].cvalue.set(0);
+ }
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("No module found with name {}", moduleName);
+ }
+ }
+ }
+
+ @Override
+ public void enableCtrOnDemand(String moduleName, String counterHierarchy) {
+ RetCtrInfo rci = getCounterId(moduleName, counterHierarchy);
+ if (!rci.allLevelsFound) {
+ String missing = rci.levels[rci.foundUptoLevel];
+ log.error("Cannot enable counter - counter not found {}", missing);
+ return;
+ }
+ // enable specific counter
+ DebugCounterInfo dc = ALLCOUNTERS[rci.ctrIds[rci.foundUptoLevel - 1]];
+ dc.cinfo.enabled = true;
+ currentCounters.add(dc.cinfo.counterId);
+ }
+
+ @Override
+ public void disableCtrOnDemand(String moduleName, String counterHierarchy) {
+ RetCtrInfo rci = getCounterId(moduleName, counterHierarchy);
+ if (!rci.allLevelsFound) {
+ String missing = rci.levels[rci.foundUptoLevel];
+ log.error("Cannot disable counter - counter not found {}", missing);
+ return;
+ }
+ // disable specific counter
+ DebugCounterInfo dc = ALLCOUNTERS[rci.ctrIds[rci.foundUptoLevel - 1]];
+ if (dc.cinfo.ctype == CounterType.COUNT_ON_DEMAND) {
+ dc.cinfo.enabled = false;
+ dc.cvalue.set(0);
+ currentCounters.remove(dc.cinfo.counterId);
+ }
+ }
+
+ @Override
+ public List<DebugCounterInfo> getCounterHierarchy(String moduleName,
+ String counterHierarchy) {
+ RetCtrInfo rci = getCounterId(moduleName, counterHierarchy);
+ if (!rci.allLevelsFound) {
+ String missing = rci.levels[rci.foundUptoLevel];
+ log.error("Cannot fetch counter - counter not found {}", missing);
+ return Collections.emptyList();
+ }
+ ArrayList<DebugCounterInfo> dcilist = new ArrayList<DebugCounterInfo>();
+ // get counter and all below it
+ DebugCounterInfo dc = ALLCOUNTERS[rci.ctrIds[rci.foundUptoLevel - 1]];
+ dcilist.add(dc);
+ ArrayList<Integer> belowIds = getHierarchyBelow(moduleName, rci);
+ for (int index : belowIds) {
+ dcilist.add(ALLCOUNTERS[index]);
+ }
+ return dcilist;
+ }
+
+ @Override
+ public List<DebugCounterInfo> getAllCounterValues() {
+ List<DebugCounterInfo> dcilist = new ArrayList<DebugCounterInfo>();
+ RetCtrInfo rci = new RetCtrInfo();
+ rci.levels = "".split("/");
+
+ for (String moduleName : moduleCounters.keySet()) {
+ ArrayList<Integer> resetIds = getHierarchyBelow(moduleName, rci);
+ for (int index : resetIds) {
+ dcilist.add(ALLCOUNTERS[index]);
+ }
+ }
+ return dcilist;
+ }
+
+ @Override
+ public List<DebugCounterInfo> getModuleCounterValues(String moduleName) {
+ List<DebugCounterInfo> dcilist = new ArrayList<DebugCounterInfo>();
+ RetCtrInfo rci = new RetCtrInfo();
+ rci.levels = "".split("/");
+
+ if (moduleCounters.containsKey(moduleName)) {
+ ArrayList<Integer> resetIds = getHierarchyBelow(moduleName, rci);
+ for (int index : resetIds) {
+ dcilist.add(ALLCOUNTERS[index]);
+ }
+ }
+ return dcilist;
+ }
+
+ @Override
+ public boolean containsModuleCounterHierarchy(String moduleName,
+ String counterHierarchy) {
+ if (!moduleCounters.containsKey(moduleName)) {
+ return false;
+ }
+ RetCtrInfo rci = getCounterId(moduleName, counterHierarchy);
+ return rci.allLevelsFound;
+ }
+
+ @Override
+ public boolean containsModuleName(String moduleName) {
+ return (moduleCounters.containsKey(moduleName)) ? true : false;
+ }
+
+ @Override
+ public List<String> getModuleList() {
+ List<String> retval = new ArrayList<String>();
+ retval.addAll(moduleCounters.keySet());
+ return retval;
+ }
+
+ @Override
+ public List<String> getModuleCounterList(String moduleName) {
+ if (!moduleCounters.containsKey(moduleName)) {
+ return Collections.emptyList();
+ }
+
+ List<String> retval = new ArrayList<String>();
+ RetCtrInfo rci = new RetCtrInfo();
+ rci.levels = "".split("/");
+
+ ArrayList<Integer> cids = getHierarchyBelow(moduleName, rci);
+ for (int index : cids) {
+ retval.add(ALLCOUNTERS[index].cinfo.counterHierarchy);
+ }
+ return retval;
+ }
+
+ //*******************************
+ // Internal Methods
+ //*******************************
+
+ protected class RetCtrInfo {
+ boolean allLevelsFound; // counter indices found all the way down the hierarchy
+ boolean hierarchical; // true if counterHierarchy is hierarchical
+ int foundUptoLevel;
+ int[] ctrIds;
+ String[] levels;
+
+ public RetCtrInfo() {
+ ctrIds = new int[MAX_HIERARCHY];
+ for (int i = 0; i < MAX_HIERARCHY; i++) {
+ ctrIds[i] = -1;
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + getOuterType().hashCode();
+ result = prime * result + (allLevelsFound ? 1231 : 1237);
+ result = prime * result + Arrays.hashCode(ctrIds);
+ result = prime * result + foundUptoLevel;
+ result = prime * result + (hierarchical ? 1231 : 1237);
+ result = prime * result + Arrays.hashCode(levels);
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object oth) {
+ if (!(oth instanceof RetCtrInfo)) {
+ return false;
+ }
+ RetCtrInfo other = (RetCtrInfo) oth;
+ if (other.allLevelsFound != this.allLevelsFound) {
+ return false;
+ }
+ if (other.hierarchical != this.hierarchical) {
+ return false;
+ }
+ if (other.foundUptoLevel != this.foundUptoLevel) {
+ return false;
+ }
+ if (!Arrays.equals(other.ctrIds, this.ctrIds)) {
+ return false;
+ }
+ if (!Arrays.equals(other.levels, this.levels)) {
+ return false;
+ }
+ return true;
+ }
+
+ private DebugCounter getOuterType() {
+ return DebugCounter.this;
+ }
+
+
+
+ }
+
+ protected RetCtrInfo getCounterId(String moduleName, String counterHierarchy) {
+ RetCtrInfo rci = new RetCtrInfo();
+ Map<String, CounterIndexStore> templevel = moduleCounters.get(moduleName);
+ rci.levels = counterHierarchy.split("/");
+ if (rci.levels.length > 1) {
+ rci.hierarchical = true;
+ }
+ if (templevel == null) {
+ log.error("moduleName {} does not exist in debugCounters", moduleName);
+ return rci;
+ }
+
+ /*
+ if (rci.levels.length > MAX_HIERARCHY) {
+ // chop off all array elems greater that MAX_HIERARCHY
+ String[] temp = new String[MAX_HIERARCHY];
+ System.arraycopy(rci.levels, 0, temp, 0, MAX_HIERARCHY);
+ rci.levels = temp;
+ }
+ */
+ for (int i = 0; i < rci.levels.length; i++) {
+ if (templevel != null) {
+ CounterIndexStore cis = templevel.get(rci.levels[i]);
+ if (cis == null) {
+ // could not find counterHierarchy part at this level
+ break;
+ } else {
+ rci.ctrIds[i] = cis.index;
+ templevel = cis.nextLevel;
+ rci.foundUptoLevel++;
+ if (i == rci.levels.length - 1) {
+ rci.allLevelsFound = true;
+ }
+ }
+ } else {
+ // there are no more levels, which means that some part of the
+ // counterHierarchy has no corresponding map
+ break;
+ }
+ }
+ return rci;
+ }
+
+ protected void addToModuleCounterHierarchy(String moduleName, int counterId,
+ RetCtrInfo rci) {
+ Map<String, CounterIndexStore> target = moduleCounters.get(moduleName);
+ if (target == null) {
+ return;
+ }
+ CounterIndexStore cis = null;
+
+ for (int i = 0; i < rci.foundUptoLevel; i++) {
+ cis = target.get(rci.levels[i]);
+ target = cis.nextLevel;
+ }
+ if (cis != null) {
+ if (cis.nextLevel == null) {
+ cis.nextLevel = new ConcurrentHashMap<String, CounterIndexStore>();
+ }
+ cis.nextLevel.put(rci.levels[rci.foundUptoLevel],
+ new CounterIndexStore(counterId, null));
+ } else {
+ target.put(rci.levels[rci.foundUptoLevel],
+ new CounterIndexStore(counterId, null));
+ }
+ }
+
+ // given a partial hierarchical counter, return the rest of the hierarchy
+ protected ArrayList<Integer> getHierarchyBelow(String moduleName, RetCtrInfo rci) {
+ Map<String, CounterIndexStore> target = moduleCounters.get(moduleName);
+ CounterIndexStore cis = null;
+ ArrayList<Integer> retval = new ArrayList<Integer>();
+ if (target == null) {
+ return retval;
+ }
+
+ // get to the level given
+ for (int i = 0; i < rci.foundUptoLevel; i++) {
+ cis = target.get(rci.levels[i]);
+ target = cis.nextLevel;
+ }
+
+ if (target == null || rci.foundUptoLevel == MAX_HIERARCHY) {
+ // no more levels
+ return retval;
+ } else {
+ // recursively get all ids
+ getIdsAtLevel(target, retval, rci.foundUptoLevel + 1);
+ }
+
+ return retval;
+ }
+
+ protected void getIdsAtLevel(Map<String, CounterIndexStore> hcy,
+ ArrayList<Integer> retval, int level) {
+ if (level > MAX_HIERARCHY) {
+ return;
+ }
+ if (hcy == null || retval == null) {
+ return;
+ }
+
+ // Can return the counter names as well but for now ids are enough.
+ for (CounterIndexStore cistemp : hcy.values()) {
+ retval.add(cistemp.index); // value at this level
+ if (cistemp.nextLevel != null) {
+ getIdsAtLevel(cistemp.nextLevel, retval, level + 1);
+ }
+ }
+ }
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounter.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounter.java
new file mode 100644
index 0000000..e157cf2
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounter.java
@@ -0,0 +1,38 @@
+package net.onrc.onos.of.ctl.debugcounter;
+
+public interface IDebugCounter {
+ /**
+ * Increments the counter by 1 thread-locally, and immediately flushes to
+ * the global counter storage. This method should be used for counters that
+ * are updated outside the OF message processing pipeline.
+ */
+ void updateCounterWithFlush();
+
+ /**
+ * Increments the counter by 1 thread-locally. Flushing to the global
+ * counter storage is delayed (happens with flushCounters() in IDebugCounterService),
+ * resulting in higher performance. This method should be used for counters
+ * updated in the OF message processing pipeline.
+ */
+ void updateCounterNoFlush();
+
+ /**
+ * Increments the counter thread-locally by the 'incr' specified, and immediately
+ * flushes to the global counter storage. This method should be used for counters
+ * that are updated outside the OF message processing pipeline.
+ */
+ void updateCounterWithFlush(int incr);
+
+ /**
+ * Increments the counter thread-locally by the 'incr' specified. Flushing to the global
+ * counter storage is delayed (happens with flushCounters() in IDebugCounterService),
+ * resulting in higher performance. This method should be used for counters
+ * updated in the OF message processing pipeline.
+ */
+ void updateCounterNoFlush(int incr);
+
+ /**
+ * Retrieve the value of the counter from the global counter store.
+ */
+ long getCounterValue();
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounterService.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounterService.java
new file mode 100644
index 0000000..81a80b1
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/IDebugCounterService.java
@@ -0,0 +1,260 @@
+package net.onrc.onos.of.ctl.debugcounter;
+
+
+
+import java.util.List;
+
+import net.onrc.onos.of.ctl.debugcounter.DebugCounter.DebugCounterInfo;
+
+public interface IDebugCounterService {
+
+ /**
+ * Different counter types. Counters that are meant to be counted-on-demand
+ * need to be separately enabled/disabled.
+ */
+ public enum CounterType {
+ ALWAYS_COUNT,
+ COUNT_ON_DEMAND
+ }
+
+ /**
+ * Debug Counter Qualifiers.
+ */
+ public static final String CTR_MDATA_WARN = "warn";
+ public static final String CTR_MDATA_ERROR = "error";
+ public static final String CTR_MDATA_DROP = "drop";
+
+ /**
+ * A limit on the maximum number of counters that can be created.
+ */
+ public static final int MAX_COUNTERS = 5000;
+
+ /**
+ * Exception thrown when MAX_COUNTERS have been registered.
+ */
+ public class MaxCountersRegistered extends CounterException {
+ private static final long serialVersionUID = 3173747663719376745L;
+ String errormsg;
+ public MaxCountersRegistered(String errormsg) {
+ this.errormsg = errormsg;
+ }
+ @Override
+ public String getMessage() {
+ return this.errormsg;
+ }
+ }
+ /**
+ * Exception thrown when MAX_HIERARCHY has been reached.
+ */
+ public class MaxHierarchyRegistered extends CounterException {
+ private static final long serialVersionUID = 967431358683523871L;
+ private String errormsg;
+ public MaxHierarchyRegistered(String errormsg) {
+ this.errormsg = errormsg;
+ }
+ @Override
+ public String getMessage() {
+ return this.errormsg;
+ }
+ }
+ /**
+ * Exception thrown when attempting to register a hierarchical counter
+ * where higher levels of the hierarchy have not been pre-registered.
+ */
+ public class MissingHierarchicalLevel extends CounterException {
+ private static final long serialVersionUID = 517315311533995739L;
+ private String errormsg;
+ public MissingHierarchicalLevel(String errormsg) {
+ this.errormsg = errormsg;
+ }
+ @Override
+ public String getMessage() {
+ return this.errormsg;
+ }
+ }
+
+ public class CounterException extends Exception {
+ private static final long serialVersionUID = 2219781500857866035L;
+ }
+
+ /**
+ * maximum levels of hierarchy.
+ * Example of moduleName/counterHierarchy:
+ * switch/00:00:00:00:01:02:03:04/pktin/drops where
+ * moduleName ==> "switch" and
+ * counterHierarchy of 3 ==> "00:00:00:00:01:02:03:04/pktin/drops"
+ */
+ public static final int MAX_HIERARCHY = 3;
+
+ /**
+ * All modules that wish to have the DebugCounterService count for them, must
+ * register their counters by making this call (typically from that module's
+ * 'startUp' method). The counter can then be updated, displayed, reset etc.
+ * using the registered moduleName and counterHierarchy.
+ *
+ * @param moduleName the name of the module which is registering the
+ * counter eg. linkdiscovery or controller or switch
+ * @param counterHierarchy the hierarchical counter name specifying all
+ * the hierarchical levels that come above it.
+ * For example: to register a drop counter for
+ * packet-ins from a switch, the counterHierarchy
+ * can be "00:00:00:00:01:02:03:04/pktin/drops"
+ * It is necessary that counters in hierarchical levels
+ * above have already been pre-registered - in this
+ * example: "00:00:00:00:01:02:03:04/pktin" and
+ * "00:00:00:00:01:02:03:04"
+ * @param counterDescription a descriptive string that gives more information
+ * of what the counter is measuring. For example,
+ * "Measures the number of incoming packets seen by
+ * this module".
+ * @param counterType One of CounterType. On-demand counter types
+ * need to be explicitly enabled/disabled using other
+ * methods in this API -- i.e. registering them is
+ * not enough to start counting.
+ * @param metaData variable arguments that qualify a counter
+ * eg. warn, error etc.
+ * @return IDebugCounter with update methods that can be
+ * used to update a counter.
+ * @throws MaxCountersRegistered
+ * @throws MaxHierarchyRegistered
+ * @throws MissingHierarchicalLevel
+ */
+ public IDebugCounter registerCounter(String moduleName, String counterHierarchy,
+ String counterDescription, CounterType counterType,
+ String... metaData)
+ throws CounterException;
+
+ /**
+ * Flush all thread-local counter values (from the current thread)
+ * to the global counter store. This method is not intended for use by any
+ * module. It's typical usage is from core and it is meant
+ * to flush those counters that are updated in the packet-processing pipeline,
+ * typically with the 'updateCounterNoFlush" methods in IDebugCounter.
+ */
+ public void flushCounters();
+
+ /**
+ * Resets the value of counters in the hierarchy to zero. Note that the reset
+ * applies to the level of counter hierarchy specified AND ALL LEVELS BELOW it
+ * in the hierarchy.
+ * For example: If a hierarchy exists like "00:00:00:00:01:02:03:04/pktin/drops"
+ * specifying a reset hierarchy: "00:00:00:00:01:02:03:04"
+ * will reset all counters for the switch dpid specified;
+ * while specifying a reset hierarchy: ""00:00:00:00:01:02:03:04/pktin"
+ * will reset the pktin counter and all levels below it (like drops)
+ * for the switch dpid specified.
+ */
+ void resetCounterHierarchy(String moduleName, String counterHierarchy);
+
+ /**
+ * Resets the values of all counters in the system.
+ */
+ public void resetAllCounters();
+
+ /**
+ * Resets the values of all counters belonging
+ * to a module with the given 'moduleName'.
+ */
+ public void resetAllModuleCounters(String moduleName);
+
+ /**
+ * This method applies only to CounterType.COUNT_ON_DEMAND. It is used to
+ * enable counting on the counter. Note that this step is necessary to start
+ * counting for these counter types - merely registering the counter is not
+ * enough (as is the case for CounterType.ALWAYS_COUNT). Newly
+ * enabled counters start from an initial value of zero.
+ *
+ * Enabling a counter in a counterHierarchy enables only THAT counter. It
+ * does not enable any other part of the counterHierarchy. For example, if
+ * a hierarchy exists like "00:00:00:00:01:02:03:04/pktin/drops", where the
+ * 'pktin' and 'drops' counters are CounterType.COUNT_ON_DEMAND, then enabling
+ * the 'pktin' counter by specifying the counterHierarchy as
+ * "00:00:00:00:01:02:03:04/pktin" does NOT enable the 'drops' counter.
+ */
+ public void enableCtrOnDemand(String moduleName, String counterHierarchy);
+
+ /**
+ * This method applies only to CounterType.COUNT_ON_DEMAND. It is used to
+ * enable counting on the counter. Note that disabling a counter results in a loss
+ * of the counter value. When re-enabled the counter will restart from zero.
+ *
+ * Disabling a counter in a counterHierarchy disables only THAT counter. It
+ * does not disable any other part of the counterHierarchy. For example, if
+ * a hierarchy exists like "00:00:00:00:01:02:03:04/pktin/drops", where the
+ * 'pktin' and 'drops' counters are CounterType.COUNT_ON_DEMAND, then disabling
+ * the 'pktin' counter by specifying the counterHierarchy as
+ * "00:00:00:00:01:02:03:04/pktin" does NOT disable the 'drops' counter.
+ */
+ public void disableCtrOnDemand(String moduleName, String counterHierarchy);
+
+ /**
+ * Get counter value and associated information for the specified counterHierarchy.
+ * Note that information on the level of counter hierarchy specified
+ * AND ALL LEVELS BELOW it in the hierarchy will be returned.
+ *
+ * For example,
+ * if a hierarchy exists like "00:00:00:00:01:02:03:04/pktin/drops", then
+ * specifying a counterHierarchy of "00:00:00:00:01:02:03:04/pktin" in the
+ * get call will return information on the 'pktin' as well as the 'drops'
+ * counters for the switch dpid specified.
+ *
+ * @return A list of DebugCounterInfo or an empty list if the counter
+ * could not be found
+ */
+ public List<DebugCounterInfo> getCounterHierarchy(String moduleName,
+ String counterHierarchy);
+
+ /**
+ * Get counter values and associated information for all counters in the
+ * system.
+ *
+ * @return the list of values/info or an empty list
+ */
+ public List<DebugCounterInfo> getAllCounterValues();
+
+ /**
+ * Get counter values and associated information for all counters associated
+ * with a module.
+ *
+ * @param moduleName
+ * @return the list of values/info or an empty list
+ */
+ public List<DebugCounterInfo> getModuleCounterValues(String moduleName);
+
+ /**
+ * Convenience method to figure out if the the given 'counterHierarchy' corresponds
+ * to a registered counterHierarchy for 'moduleName'. Note that the counter may or
+ * may not be enabled for counting, but if it is registered the method will
+ * return true.
+ *
+ * @param param
+ * @return false if moduleCounterHierarchy is not a registered counter
+ */
+ public boolean containsModuleCounterHierarchy(String moduleName,
+ String counterHierarchy);
+
+ /**
+ * Convenience method to figure out if the the given 'moduleName' corresponds
+ * to a registered moduleName or not. Note that the module may or may not have
+ * a counter enabled for counting, but if it is registered the method will
+ * return true.
+ *
+ * @param param
+ * @return false if moduleName is not a registered counter
+ */
+ public boolean containsModuleName(String moduleName);
+
+ /**
+ * Returns a list of moduleNames registered for debug counters or an empty
+ * list if no counters have been registered in the system.
+ */
+ public List<String> getModuleList();
+
+ /**
+ * Returns a list of all counters registered for a specific moduleName
+ * or a empty list.
+ */
+ public List<String> getModuleCounterList(String moduleName);
+
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/NullDebugCounter.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/NullDebugCounter.java
new file mode 100644
index 0000000..1775c50
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/debugcounter/NullDebugCounter.java
@@ -0,0 +1,116 @@
+package net.onrc.onos.of.ctl.debugcounter;
+
+import java.util.Collections;
+import java.util.List;
+
+import net.onrc.onos.of.ctl.debugcounter.DebugCounter.DebugCounterInfo;
+
+public class NullDebugCounter implements IDebugCounterService {
+
+ @Override
+ public void flushCounters() {
+
+ }
+
+ @Override
+ public void resetAllCounters() {
+
+ }
+
+ @Override
+ public void resetAllModuleCounters(String moduleName) {
+
+ }
+
+
+ @Override
+ public void resetCounterHierarchy(String moduleName, String counterHierarchy) {
+
+ }
+
+ @Override
+ public void enableCtrOnDemand(String moduleName, String counterHierarchy) {
+
+ }
+
+ @Override
+ public void disableCtrOnDemand(String moduleName, String counterHierarchy) {
+
+ }
+
+ @Override
+ public List<DebugCounterInfo> getCounterHierarchy(String moduleName,
+ String counterHierarchy) {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List<DebugCounterInfo> getAllCounterValues() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List<DebugCounterInfo> getModuleCounterValues(String moduleName) {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public boolean containsModuleCounterHierarchy(String moduleName,
+ String counterHierarchy) {
+ return false;
+ }
+
+ @Override
+ public boolean containsModuleName(String moduleName) {
+ return false;
+ }
+
+ @Override
+ public
+ IDebugCounter
+ registerCounter(String moduleName, String counterHierarchy,
+ String counterDescription,
+ CounterType counterType, String... metaData)
+ throws MaxCountersRegistered {
+ return new NullCounterImpl();
+ }
+
+ @Override
+ public List<String> getModuleList() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List<String> getModuleCounterList(String moduleName) {
+ return Collections.emptyList();
+ }
+
+ public static class NullCounterImpl implements IDebugCounter {
+
+ @Override
+ public void updateCounterWithFlush() {
+
+ }
+
+ @Override
+ public void updateCounterNoFlush() {
+
+ }
+
+ @Override
+ public void updateCounterWithFlush(int incr) {
+ }
+
+ @Override
+ public void updateCounterNoFlush(int incr) {
+
+ }
+
+ @Override
+ public long getCounterValue() {
+ return -1;
+ }
+
+ }
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/Controller.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/Controller.java
new file mode 100644
index 0000000..84f090a
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/Controller.java
@@ -0,0 +1,839 @@
+/**
+ * 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 net.onrc.onos.of.ctl.internal;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
+import java.net.InetSocketAddress;
+import java.net.UnknownHostException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.Executors;
+
+import net.onrc.onos.of.ctl.IOFSwitchManager;
+import net.onrc.onos.of.ctl.Role;
+import net.onrc.onos.of.ctl.annotations.LogMessageDoc;
+import net.onrc.onos.of.ctl.annotations.LogMessageDocs;
+import net.onrc.onos.of.ctl.debugcounter.DebugCounter;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounter;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterException;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterType;
+import net.onrc.onos.of.ctl.internal.OFChannelHandler.RoleRecvStatus;
+import net.onrc.onos.of.ctl.registry.IControllerRegistry;
+import net.onrc.onos.of.ctl.registry.RegistryException;
+import net.onrc.onos.of.ctl.registry.IControllerRegistry.ControlChangeCallback;
+import net.onrc.onos.of.ctl.util.Dpid;
+import net.onrc.onos.of.ctl.util.DummySwitchForTesting;
+import net.onrc.onos.of.ctl.util.InstanceId;
+import net.onrc.onos.of.ctl.IOFSwitch;
+import net.onrc.onos.of.ctl.IOFSwitch.PortChangeType;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+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.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFFactories;
+import org.projectfloodlight.openflow.protocol.OFFactory;
+import org.projectfloodlight.openflow.protocol.OFPortDesc;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.projectfloodlight.openflow.util.HexString;
+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
+ */
+@Component(immediate = true)
+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);
+
+ // connectedSwitches cache contains all connected switch's channelHandlers
+ // including ones where this controller is a master/equal/slave controller
+ // as well as ones that have not been activated yet
+ protected ConcurrentHashMap<Long, OFChannelHandler> connectedSwitches;
+ // These caches contains only those switches that are active
+ protected ConcurrentHashMap<Long, IOFSwitch> activeMasterSwitches;
+ protected ConcurrentHashMap<Long, IOFSwitch> activeEqualSwitches;
+ // lock to synchronize on, when manipulating multiple caches above
+ private Object multiCacheLock;
+
+ // The controllerNodeIPsCache maps Controller IDs to their IP address.
+ // It's only used by handleControllerNodeIPsChanged
+ protected HashMap<String, String> controllerNodeIPsCache;
+
+ // Module dependencies
+
+ protected IControllerRegistry registryService;
+ protected IDebugCounterService debugCounters;
+
+
+ private IOFSwitchManager switchManager;
+
+ // Configuration options
+ protected int openFlowPort = 6633;
+ protected int workerThreads = 0;
+
+ // defined counters
+ private Counters counters;
+
+ // Start time of the controller
+ protected long systemStartTime;
+
+ // Flag to always flush flow table on switch reconnect (HA or otherwise)
+ protected boolean alwaysClearFlowsOnSwAdd = false;
+ private InstanceId instanceId;
+
+ // Perf. related configuration
+ protected static final int SEND_BUFFER_SIZE = 4 * 1024 * 1024;
+ protected static final int BATCH_MAX_SIZE = 100;
+ protected static final boolean ALWAYS_DECODE_ETH = true;
+
+ protected boolean addConnectedSwitch(long dpid, OFChannelHandler h) {
+ 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, h);
+ return true;
+ }
+ }
+
+ private boolean validActivation(long dpid) {
+ if (connectedSwitches.get(dpid) == null) {
+ log.error("Trying to activate switch but is not in "
+ + "connected switches: dpid {}. Aborting ..",
+ HexString.toHexString(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[] {
+ HexString.toHexString(dpid),
+ (activeMasterSwitches.get(dpid) == null) ? 'N' : 'Y',
+ (activeEqualSwitches.get(dpid) == null) ? 'N' : 'Y'});
+ counters.switchWithSameDpidActivated.updateCounterWithFlush();
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Called when a switch is activated, with this controller's role as MASTER.
+ */
+ protected boolean addActivatedMasterSwitch(long dpid, IOFSwitch sw) {
+ synchronized (multiCacheLock) {
+ if (!validActivation(dpid)) {
+ return false;
+ }
+ activeMasterSwitches.put(dpid, sw);
+ }
+ //update counters and events
+ counters.switchActivated.updateCounterWithFlush();
+
+ return true;
+ }
+
+ /**
+ * Called when a switch is activated, with this controller's role as EQUAL.
+ */
+ protected boolean addActivatedEqualSwitch(long dpid, IOFSwitch sw) {
+ synchronized (multiCacheLock) {
+ if (!validActivation(dpid)) {
+ return false;
+ }
+ activeEqualSwitches.put(dpid, sw);
+ }
+ //update counters and events
+ counters.switchActivated.updateCounterWithFlush();
+ return true;
+ }
+
+ /**
+ * 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'.
+ */
+ protected void transitionToMasterSwitch(long dpid) {
+ synchronized (multiCacheLock) {
+ IOFSwitch sw = activeEqualSwitches.remove(dpid);
+ if (sw == null) {
+ log.error("Transition to master called on sw {}, but switch "
+ + "was not found in controller-cache", dpid);
+ return;
+ }
+ activeMasterSwitches.put(dpid, sw);
+ }
+ }
+
+
+ /**
+ * 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'.
+ */
+ protected void transitionToEqualSwitch(long dpid) {
+ synchronized (multiCacheLock) {
+ IOFSwitch sw = activeMasterSwitches.remove(dpid);
+ if (sw == null) {
+ log.error("Transition to equal called on sw {}, but switch "
+ + "was not found in controller-cache", dpid);
+ return;
+ }
+ activeEqualSwitches.put(dpid, sw);
+ }
+
+ }
+
+ /**
+ * 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.
+ */
+ protected void removeConnectedSwitch(long dpid) {
+ releaseRegistryControl(dpid);
+ connectedSwitches.remove(dpid);
+ IOFSwitch sw = activeMasterSwitches.remove(dpid);
+ if (sw == null) {
+ sw = activeEqualSwitches.remove(dpid);
+ }
+ if (sw != null) {
+ sw.cancelAllStatisticsReplies();
+ sw.setConnected(false); // do we need this?
+ }
+ counters.switchDisconnected.updateCounterWithFlush();
+
+ }
+
+ /**
+ * Indicates that ports on the given switch have changed. Enqueue a
+ * switch update.
+ * @param sw
+ */
+ protected void notifyPortChanged(long dpid, OFPortDesc port,
+ PortChangeType changeType) {
+ if (port == null || changeType == null) {
+ String msg = String.format("Switch port or changetType must not "
+ + "be null in port change notification");
+ throw new NullPointerException(msg);
+ }
+ if (connectedSwitches.get(dpid) == null || getSwitch(dpid) == null) {
+ log.warn("Port change update on switch {} not connected or activated "
+ + "... Aborting.", HexString.toHexString(dpid));
+ return;
+ }
+
+ }
+
+ // ***************
+ // Getters/Setters
+ // ***************
+
+
+ public synchronized void setIOFSwitchManager(IOFSwitchManager swManager) {
+ this.switchManager = swManager;
+ this.registryService = swManager.getRegistry();
+ }
+
+
+ public void setDebugCounter(IDebugCounterService dcs) {
+ this.debugCounters = dcs;
+ }
+
+ IDebugCounterService getDebugCounter() {
+ return this.debugCounters;
+ }
+
+ // **********************
+ // Role Handling
+ // **********************
+
+ /**
+ * created by ONOS - works with registry service.
+ */
+ protected class RoleChangeCallback implements ControlChangeCallback {
+ @Override
+ public void controlChanged(long dpidLong, boolean hasControl) {
+ Dpid dpid = new Dpid(dpidLong);
+ log.info("Role change callback for switch {}, hasControl {}",
+ dpid, hasControl);
+
+ Role role = null;
+
+ /*
+ * issue #229
+ * Cannot rely on sw.getRole() as it can be behind due to pending
+ * role changes in the queue. Just submit it and late the
+ * RoleChanger handle duplicates.
+ */
+
+ if (hasControl) {
+ role = Role.MASTER;
+ } else {
+ role = Role.EQUAL; // treat the same as Role.SLAVE
+ }
+
+ OFChannelHandler swCh = connectedSwitches.get(dpid.value());
+ if (swCh == null) {
+ log.warn("Switch {} not found in connected switches", dpid);
+ return;
+ }
+
+ log.debug("Sending role request {} msg to {}", role, dpid);
+ swCh.sendRoleRequest(role, RoleRecvStatus.MATCHED_SET_ROLE);
+ }
+ }
+
+ /**
+ * Submit request to the registry service for mastership of the
+ * switch.
+ * @param dpid this datapath to get role for
+ */
+ public synchronized void submitRegistryRequest(long dpid) {
+ if (registryService == null) {
+ /*
+ * If we have no registry then simply assign
+ * mastership to this controller.
+ */
+ new RoleChangeCallback().controlChanged(dpid, true);
+ return;
+ }
+ OFChannelHandler h = connectedSwitches.get(dpid);
+ if (h == null) {
+ log.error("Trying to request registry control for switch {} "
+ + "not in connected switches. Aborting.. ",
+ HexString.toHexString(dpid));
+ connectedSwitches.get(dpid).disconnectSwitch();
+ return;
+ }
+ //Request control of the switch from the global registry
+ try {
+ h.controlRequested = Boolean.TRUE;
+ registryService.requestControl(dpid, new RoleChangeCallback());
+ } catch (RegistryException e) {
+ log.debug("Registry error: {}", e.getMessage());
+ h.controlRequested = Boolean.FALSE;
+ }
+ if (!h.controlRequested) { // XXX what is being attempted here?
+ // yield to allow other thread(s) to release control
+ // TODO AAS: this is awful and needs to be fixed
+ Thread.yield();
+ // safer to bounce the switch to reconnect here than proceeding further
+ // XXX S why? can't we just try again a little later?
+ log.debug("Closing sw:{} because we weren't able to request control " +
+ "successfully" + dpid);
+ connectedSwitches.get(dpid).disconnectSwitch();
+ }
+ }
+
+ /**
+ * Relinquish role for the switch.
+ * @param dpidLong the controlled datapath
+ */
+ public synchronized void releaseRegistryControl(long dpidLong) {
+ OFChannelHandler h = connectedSwitches.get(dpidLong);
+ if (h == null) {
+ log.error("Trying to release registry control for switch {} "
+ + "not in connected switches. Aborting.. ",
+ HexString.toHexString(dpidLong));
+ return;
+ }
+ if (registryService != null && h.controlRequested) {
+ //TODO the above is not good for testing need to change controlrequest to method call.
+ registryService.releaseControl(dpidLong);
+ }
+ }
+
+
+ // FIXME: remove this method
+ public Map<Long, IOFSwitch> getSwitches() {
+ return getMasterSwitches();
+ }
+
+ // FIXME: remove this method
+ public Map<Long, IOFSwitch> getMasterSwitches() {
+ return Collections.unmodifiableMap(activeMasterSwitches);
+ }
+
+
+
+ public Set<Long> getAllSwitchDpids() {
+ Set<Long> dpids = new HashSet<Long>();
+ dpids.addAll(activeMasterSwitches.keySet());
+ dpids.addAll(activeEqualSwitches.keySet());
+ return dpids;
+ }
+
+
+ public Set<Long> getAllMasterSwitchDpids() {
+ Set<Long> dpids = new HashSet<Long>();
+ dpids.addAll(activeMasterSwitches.keySet());
+ return dpids;
+ }
+
+
+ public Set<Long> getAllEqualSwitchDpids() {
+ Set<Long> dpids = new HashSet<Long>();
+ dpids.addAll(activeEqualSwitches.keySet());
+ return dpids;
+ }
+
+
+ public IOFSwitch getSwitch(long dpid) {
+ IOFSwitch sw = null;
+ sw = activeMasterSwitches.get(dpid);
+ if (sw != null) {
+ return sw;
+ }
+ sw = activeEqualSwitches.get(dpid);
+ if (sw != null) {
+ return sw;
+ }
+ return sw;
+ }
+
+
+ public IOFSwitch getMasterSwitch(long dpid) {
+ return activeMasterSwitches.get(dpid);
+ }
+
+
+ public IOFSwitch getEqualSwitch(long dpid) {
+ return activeEqualSwitches.get(dpid);
+ }
+
+
+
+
+
+ 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);
+ }
+
+
+ public InstanceId getInstanceId() {
+ return instanceId;
+ }
+
+
+ // **************
+ // Initialization
+ // **************
+
+ /**
+ * Tell controller that we're ready to accept switches loop.
+ *
+ * @throws IOException
+ */
+ @LogMessageDocs({
+ @LogMessageDoc(message = "Listening for switch connections on {address}",
+ explanation = "The controller is ready and listening for new" +
+ " switch connections"),
+ @LogMessageDoc(message = "Storage exception in controller " +
+ "updates loop; terminating process",
+ explanation = ERROR_DATABASE,
+ recommendation = LogMessageDoc.CHECK_CONTROLLER),
+ @LogMessageDoc(level = "ERROR",
+ message = "Exception in controller updates loop",
+ explanation = "Failed to dispatch controller event",
+ recommendation = LogMessageDoc.GENERIC_ACTION)
+ })
+ 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);
+ final ChannelGroup 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) {
+ return new ServerBootstrap(
+ new NioServerSocketChannelFactory(
+ Executors.newCachedThreadPool(),
+ Executors.newCachedThreadPool()));
+ } else {
+ return new ServerBootstrap(
+ new NioServerSocketChannelFactory(
+ Executors.newCachedThreadPool(),
+ Executors.newCachedThreadPool(), workerThreads));
+ }
+ }
+
+ 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);
+ String controllerId = configParams.get("controllerid");
+ if (controllerId != null) {
+ this.instanceId = new InstanceId(controllerId);
+ } else {
+ //Try to get the hostname of the machine and use that for controller ID
+ try {
+ String hostname = java.net.InetAddress.getLocalHost().getHostName();
+ this.instanceId = new InstanceId(hostname);
+ } catch (UnknownHostException e) {
+ log.warn("Can't get hostname, using the default");
+ }
+ }
+
+ log.debug("ControllerId set to {}", this.instanceId);
+ }
+
+
+ /**
+ * 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.activeMasterSwitches = new ConcurrentHashMap<Long, IOFSwitch>();
+ this.activeEqualSwitches = new ConcurrentHashMap<Long, IOFSwitch>();
+ this.connectedSwitches = new ConcurrentHashMap<Long, OFChannelHandler>();
+ this.controllerNodeIPsCache = new HashMap<String, String>();
+
+ setConfigParams(configParams);
+ this.systemStartTime = System.currentTimeMillis();
+ this.setDebugCounter(new DebugCounter());
+ this.counters = new Counters();
+ this.multiCacheLock = new Object();
+
+ }
+
+ /**
+ * Startup all of the controller's components.
+ */
+ @LogMessageDoc(message = "Waiting for storage source",
+ explanation = "The system database is not yet ready",
+ recommendation = "If this message persists, this indicates " +
+ "that the system database has failed to start. " +
+ LogMessageDoc.CHECK_CONTROLLER)
+ public synchronized void startupComponents() {
+ try {
+ if (registryService != null) {
+ registryService.registerController(instanceId.toString());
+ }
+ } catch (RegistryException e) {
+ log.warn("Registry service error: {}", e.getMessage());
+ }
+
+ // register counters and events
+ try {
+ this.counters.createCounters(debugCounters);
+ } catch (CounterException e) {
+ log.warn("Counters unavailable: {}", e.getMessage());
+ }
+ }
+
+ // **************
+ // debugCounter registrations
+ // **************
+
+ public static class Counters {
+ public static final String PREFIX = "controller";
+ public IDebugCounter switchActivated;
+ public IDebugCounter switchWithSameDpidActivated; // warn
+ public IDebugCounter switchDisconnected;
+ public IDebugCounter messageReceived;
+ public IDebugCounter switchDisconnectReadTimeout;
+ public IDebugCounter switchDisconnectHandshakeTimeout;
+ public IDebugCounter switchDisconnectIOError;
+ public IDebugCounter switchDisconnectParseError;
+ public IDebugCounter switchDisconnectSwitchStateException;
+ public IDebugCounter rejectedExecutionException;
+ public IDebugCounter switchDisconnectOtherException;
+ public IDebugCounter switchConnected;
+ public IDebugCounter unhandledMessage;
+ public IDebugCounter packetInWhileSwitchIsSlave;
+ public IDebugCounter epermErrorWhileSwitchIsMaster;
+ public IDebugCounter roleReplyTimeout;
+ public IDebugCounter roleReplyReceived; // expected RoleReply received
+ public IDebugCounter roleReplyErrorUnsupported;
+ public IDebugCounter switchCounterRegistrationFailed;
+
+ void createCounters(IDebugCounterService debugCounters) throws CounterException {
+
+ switchActivated =
+ debugCounters.registerCounter(
+ PREFIX, "switch-activated",
+ "A switch connected to this controller is now " +
+ "in MASTER role",
+ CounterType.ALWAYS_COUNT);
+
+ switchWithSameDpidActivated = // warn
+ debugCounters.registerCounter(
+ PREFIX, "switch-with-same-dpid-activated",
+ "A switch with the same DPID as another switch " +
+ "connected to the controller. This can be " +
+ "caused by multiple switches configured with " +
+ "the same DPID or by a switch reconnecting very " +
+ "quickly.",
+ CounterType.COUNT_ON_DEMAND,
+ IDebugCounterService.CTR_MDATA_WARN);
+
+ switchDisconnected =
+ debugCounters.registerCounter(
+ PREFIX, "switch-disconnected",
+ "FIXME: switch has disconnected",
+ CounterType.ALWAYS_COUNT);
+
+ //------------------------
+ // channel handler counters. Factor them out ??
+ messageReceived =
+ debugCounters.registerCounter(
+ PREFIX, "message-received",
+ "Number of OpenFlow messages received. Some of " +
+ "these might be throttled",
+ CounterType.ALWAYS_COUNT);
+
+ switchDisconnectReadTimeout =
+ debugCounters.registerCounter(
+ PREFIX, "switch-disconnect-read-timeout",
+ "Number of times a switch was disconnected due " +
+ "due the switch failing to send OpenFlow " +
+ "messages or responding to OpenFlow ECHOs",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_ERROR);
+ switchDisconnectHandshakeTimeout =
+ debugCounters.registerCounter(
+ PREFIX, "switch-disconnect-handshake-timeout",
+ "Number of times a switch was disconnected " +
+ "because it failed to complete the handshake " +
+ "in time.",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_ERROR);
+ switchDisconnectIOError =
+ debugCounters.registerCounter(
+ PREFIX, "switch-disconnect-io-error",
+ "Number of times a switch was disconnected " +
+ "due to IO errors on the switch connection.",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_ERROR);
+ switchDisconnectParseError =
+ debugCounters.registerCounter(
+ PREFIX, "switch-disconnect-parse-error",
+ "Number of times a switch was disconnected " +
+ "because it sent an invalid packet that could " +
+ "not be parsed",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_ERROR);
+
+ switchDisconnectSwitchStateException =
+ debugCounters.registerCounter(
+ PREFIX, "switch-disconnect-switch-state-exception",
+ "Number of times a switch was disconnected " +
+ "because it sent messages that were invalid " +
+ "given the switch connection's state.",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_ERROR);
+ rejectedExecutionException =
+ debugCounters.registerCounter(
+ PREFIX, "rejected-execution-exception",
+ "TODO",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_ERROR);
+
+ switchDisconnectOtherException =
+ debugCounters.registerCounter(
+ PREFIX, "switch-disconnect-other-exception",
+ "Number of times a switch was disconnected " +
+ "due to an exceptional situation not covered " +
+ "by other counters",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_ERROR);
+
+ switchConnected =
+ debugCounters.registerCounter(
+ PREFIX, "switch-connected",
+ "Number of times a new switch connection was " +
+ "established",
+ CounterType.ALWAYS_COUNT);
+
+ unhandledMessage =
+ debugCounters.registerCounter(
+ PREFIX, "unhandled-message",
+ "Number of times an OpenFlow message was " +
+ "received that the controller ignored because " +
+ "it was inapproriate given the switch " +
+ "connection's state.",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_WARN);
+ // might be less than warning
+
+ packetInWhileSwitchIsSlave =
+ debugCounters.registerCounter(
+ PREFIX, "packet-in-while-switch-is-slave",
+ "Number of times a packet in was received " +
+ "from a switch that was in SLAVE role. " +
+ "Possibly inidicates inconsistent roles.",
+ CounterType.ALWAYS_COUNT);
+ epermErrorWhileSwitchIsMaster =
+ debugCounters.registerCounter(
+ PREFIX, "eperm-error-while-switch-is-master",
+ "Number of times a permission error was " +
+ "received while the switch was in MASTER role. " +
+ "Possibly inidicates inconsistent roles.",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_WARN);
+
+ roleReplyTimeout =
+ debugCounters.registerCounter(
+ PREFIX, "role-reply-timeout",
+ "Number of times a role request message did not " +
+ "receive the expected reply from a switch",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_WARN);
+
+ roleReplyReceived = // expected RoleReply received
+ debugCounters.registerCounter(
+ PREFIX, "role-reply-received",
+ "Number of times the controller received the " +
+ "expected role reply message from a switch",
+ CounterType.ALWAYS_COUNT);
+
+ roleReplyErrorUnsupported =
+ debugCounters.registerCounter(
+ PREFIX, "role-reply-error-unsupported",
+ "Number of times the controller received an " +
+ "error from a switch in response to a role " +
+ "request indicating that the switch does not " +
+ "support roles.",
+ CounterType.ALWAYS_COUNT);
+
+ switchCounterRegistrationFailed =
+ debugCounters.registerCounter(PREFIX,
+ "switch-counter-registration-failed",
+ "Number of times the controller failed to " +
+ "register per-switch debug counters",
+ CounterType.ALWAYS_COUNT,
+ IDebugCounterService.CTR_MDATA_WARN);
+
+
+ }
+ }
+
+ public Counters getCounters() {
+ return this.counters;
+ }
+
+
+ // **************
+ // 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
+ */
+ protected IOFSwitch getOFSwitchInstance(OFDescStatsReply desc, OFVersion ofv) {
+ if (switchManager == null) {
+ return new DummySwitchForTesting();
+ }
+ return switchManager.getSwitchImpl(desc.getMfrDesc(), desc.getHwDesc(),
+ desc.getSwDesc(), ofv);
+ }
+
+ @Activate
+ public void activate() {
+ log.info("Initialising OpenFlow Lib and IO");
+ this.init(new HashMap<String, String>());
+ this.startupComponents();
+ this.run();
+ }
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutException.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutException.java
new file mode 100644
index 0000000..48856a9
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/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 net.onrc.onos.of.ctl.internal;
+
+/**
+ * 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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutHandler.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/HandshakeTimeoutHandler.java
new file mode 100644
index 0000000..2ed3fd2
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/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 net.onrc.onos.of.ctl.internal;
+
+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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFChannelHandler.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFChannelHandler.java
new file mode 100644
index 0000000..3b18a59
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFChannelHandler.java
@@ -0,0 +1,2153 @@
+package net.onrc.onos.of.ctl.internal;
+
+import java.io.IOException;
+import java.nio.channels.ClosedChannelException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.RejectedExecutionException;
+
+import net.onrc.onos.of.ctl.IOFSwitch;
+import net.onrc.onos.of.ctl.IOFSwitch.PortChangeEvent;
+import net.onrc.onos.of.ctl.Role;
+import net.onrc.onos.of.ctl.annotations.LogMessageDoc;
+import net.onrc.onos.of.ctl.annotations.LogMessageDocs;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterException;
+import net.onrc.onos.of.ctl.internal.Controller.Counters;
+import net.onrc.onos.of.ctl.internal.OFChannelHandler.ChannelState.RoleReplyInfo;
+
+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.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.OFControllerRole;
+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.OFNiciraControllerRole;
+import org.projectfloodlight.openflow.protocol.OFNiciraControllerRoleReply;
+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.OFRoleRequest;
+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.protocol.errormsg.OFRoleRequestFailedErrorMsg;
+import org.projectfloodlight.openflow.types.U32;
+import org.projectfloodlight.openflow.types.U64;
+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 static final long DEFAULT_ROLE_TIMEOUT_MS = 2 * 1000; // 10 sec
+ private final Controller controller;
+ private final Counters counters;
+ private IOFSwitch 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;
+
+ // All role messaging is handled by the roleChanger. The channel state machine
+ // coordinates between the roleChanger and the controller-global-registry-service
+ // to determine controller roles per switch.
+ private RoleChanger roleChanger;
+ // Used to coordinate between the controller and the cleanup thread(?)
+ // for access to the global registry on a per switch basis.
+ volatile Boolean controlRequested;
+ // 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.counters = controller.getCounters();
+ this.roleChanger = new RoleChanger(DEFAULT_ROLE_TIMEOUT_MS);
+ this.state = ChannelState.INIT;
+ this.pendingPortStatusMsg = new CopyOnWriteArrayList<OFPortStatus>();
+ factory13 = controller.getOFMessageFactory13();
+ factory10 = controller.getOFMessageFactory10();
+ controlRequested = Boolean.FALSE;
+ duplicateDpidFound = Boolean.FALSE;
+ }
+
+ //*******************
+ // Role Handling
+ //*******************
+
+ /**
+ * 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,
+ }
+
+ /**
+ * Forwards to RoleChanger. See there.
+ * @param role
+ */
+ public void sendRoleRequest(Role role, RoleRecvStatus expectation) {
+ try {
+ roleChanger.sendRoleRequest(role, expectation);
+ } catch (IOException e) {
+ log.error("Disconnecting switch {} due to IO Error: {}",
+ getSwitchInfoString(), e.getMessage());
+ channel.close();
+ }
+ }
+
+ // XXX S consider if necessary
+ public void disconnectSwitch() {
+ sw.disconnectSwitch();
+ }
+
+ /**
+ * 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.
+ */
+ private class RoleChanger {
+ // 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 Role pendingRole;
+ // system time in MS when we send the request
+ private long roleSubmitTime;
+ // the timeout to use
+ private final long roleTimeoutMs;
+ // the expectation set by the caller for the returned role
+ private RoleRecvStatus expectation;
+
+ public RoleChanger(long roleTimeoutMs) {
+ this.requestPending = false;
+ this.roleSubmitTime = 0;
+ this.pendingXid = -1;
+ this.pendingRole = null;
+ this.roleTimeoutMs = roleTimeoutMs;
+ this.expectation = RoleRecvStatus.MATCHED_CURRENT_ROLE;
+ }
+
+ /**
+ * Send NX role request message to the switch requesting the specified
+ * role.
+ *
+ * @param sw switch to send the role request message to
+ * @param role role to request
+ */
+ private int sendNxRoleRequest(Role 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_SLAVE;
+ log.warn("Sending Nx Role.SLAVE to switch {}.", sw);
+ }
+ int xid = sw.getNextTransactionId();
+ OFExperimenter roleRequest = factory10
+ .buildNiciraControllerRoleRequest()
+ .setXid(xid)
+ .setRole(roleToSend)
+ .build();
+ sw.write(Collections.<OFMessage>singletonList(roleRequest));
+ return xid;
+ }
+
+ private int sendOF13RoleRequest(Role 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 = factory13
+ .buildRoleRequest()
+ .setRole(roleToSend)
+ .setXid(xid)
+ .setGenerationId(sw.getNextGenerationId())
+ .build();
+ sw.write(rrm);
+ return xid;
+ }
+
+ /**
+ * 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
+ * @returns false if and only if the switch does not support role-request
+ * messages, according to the switch driver; true otherwise.
+ */
+ synchronized boolean sendRoleRequest(Role role, RoleRecvStatus exp)
+ throws IOException {
+ this.expectation = exp;
+
+ if (ofVersion == OFVersion.OF_10) {
+ Boolean supportsNxRole = (Boolean)
+ sw.getAttribute(IOFSwitch.SWITCH_SUPPORTS_NX_ROLE);
+ if (!supportsNxRole) {
+ log.debug("Switch driver indicates no support for Nicira "
+ + "role request messages. Not sending ...");
+ state.handleUnsentRoleMessage(OFChannelHandler.this, role,
+ expectation);
+ return false;
+ }
+ // OF1.0 switch with support for NX_ROLE_REQUEST vendor extn.
+ // make Role.EQUAL become Role.SLAVE
+ role = (role == Role.EQUAL) ? Role.SLAVE : role;
+ pendingXid = sendNxRoleRequest(role);
+ pendingRole = role;
+ roleSubmitTime = System.currentTimeMillis();
+ requestPending = true;
+ } else {
+ // OF1.3 switch, use OFPT_ROLE_REQUEST message
+ pendingXid = sendOF13RoleRequest(role);
+ pendingRole = role;
+ roleSubmitTime = System.currentTimeMillis();
+ requestPending = true;
+ }
+ return true;
+ }
+
+ /**
+ * 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 RoleReplyInfo information about role-reply in format that
+ * controller can understand.
+ * @throws SwitchStateException if no request is pending
+ */
+ synchronized RoleRecvStatus deliverRoleReply(RoleReplyInfo rri)
+ throws SwitchStateException {
+ if (!requestPending) {
+ Role 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: {} in State: {}. "
+ + "Role in reply is same as current role of this "
+ + "controller for this sw. Ignoring ...",
+ getSwitchInfoString(), state.toString());
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ } else {
+ String msg = String.format("Switch: [%s], State: [%s], "
+ + "received unexpected RoleReply[%s]. "
+ + "No roles are pending, and this controller's "
+ + "current role:[%s] does not match reply. "
+ + "Disconnecting switch ... ",
+ OFChannelHandler.this.getSwitchInfoString(),
+ OFChannelHandler.this.state.toString(),
+ rri, currentRole);
+ throw new SwitchStateException(msg);
+ }
+ }
+ log.debug("Received unexpected RoleReply {} from "
+ + "Switch: {} in State: {}. "
+ + "This controller has no current role for this sw. "
+ + "Ignoring ...", new Object[] {rri,
+ getSwitchInfoString(), state});
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ }
+
+ int xid = (int) rri.getXid();
+ Role role = rri.getRole();
+ // XXX S should check generation id meaningfully and other cases of expectations
+ // U64 genId = rri.getGenId();
+
+ if (pendingXid != xid) {
+ log.debug("Received older role reply from " +
+ "switch {} ({}). Ignoring. " +
+ "Waiting for {}, xid={}",
+ new Object[] {getSwitchInfoString(), 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[] {getSwitchInfoString(), role, expectation});
+ counters.roleReplyReceived.updateCounterWithFlush();
+ //setSwitchRole(role, RoleRecvStatus.RECEIVED_REPLY); dont want to set state here
+ 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
+ */
+ 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 ...",
+ getSwitchInfoString());
+ 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 {} ...",
+ getSwitchInfoString(), error);
+ }
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ }
+ // it is an error related to a currently pending role request message
+ if (error.getErrType() == OFErrorType.BAD_REQUEST) {
+ counters.roleReplyErrorUnsupported.updateCounterWithFlush();
+ log.error("Received a error msg {} from sw {} in state {} for "
+ + "pending role request {}. Switch driver indicates "
+ + "role-messaging is supported. Possible issues in "
+ + "switch driver configuration?", new Object[] {
+ ((OFBadRequestErrorMsg) error).toString(),
+ getSwitchInfoString(), state, 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], State: [%s], "
+ + "received Error to for pending role request [%s]. "
+ + "Error:[%s]. Disconnecting switch ... ",
+ OFChannelHandler.this.getSwitchInfoString(),
+ OFChannelHandler.this.state.toString(),
+ 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;
+ }
+
+ /**
+ * Check if a pending role request has timed out.
+ */
+ void checkTimeout() {
+ if (!requestPending) {
+ return;
+ }
+ synchronized (this) {
+ if (!requestPending) {
+ return;
+ }
+ long now = System.currentTimeMillis();
+ if (now - roleSubmitTime > roleTimeoutMs) {
+ // timeout triggered.
+ counters.roleReplyTimeout.updateCounterWithFlush();
+ //setSwitchRole(pendingRole, RoleRecvStatus.NO_REPLY);
+ // XXX S come back to this
+ }
+ }
+ }
+
+ }
+
+ //*************************
+ // 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);
+ //update the controller about this connected switch
+ boolean success = h.controller.addConnectedSwitch(
+ h.thisdpid, h);
+ if (!success) {
+ disconnectDuplicate(h);
+ return;
+ }
+
+ 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
+ @LogMessageDocs({
+ @LogMessageDoc(level = "WARN",
+ message = "Config Reply from {switch} has "
+ + "miss length set to {length}",
+ explanation = "The controller requires that the switch "
+ + "use a miss length of 0xffff for correct "
+ + "function",
+ recommendation = "Use a different switch to ensure "
+ + "correct function")
+ })
+ 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) {
+ @LogMessageDoc(message = "Switch {switch info} bound to class "
+ + "{switch driver}, description {switch description}",
+ explanation = "The specified switch has been bound to "
+ + "a switch driver based on the switch description"
+ + "received from the switch")
+ @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(drep, h.ofVersion);
+ // set switch information
+ h.sw.setOFVersion(h.ofVersion);
+ h.sw.setFeaturesReply(h.featuresReply);
+ h.sw.setPortDescReply(h.portDescReply);
+ h.sw.setConnected(true);
+ h.sw.setChannel(h.channel);
+
+ try {
+ h.sw.setDebugCounterService(h.controller.getDebugCounter());
+ } catch (CounterException e) {
+ h.counters.switchCounterRegistrationFailed
+ .updateCounterNoFlush();
+ log.warn("Could not register counters for switch {} ",
+ h.getSwitchInfoString(), e);
+ }
+
+ 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.setSwitchRole(Role.EQUAL);
+ try {
+ boolean supportsRRMsg = h.roleChanger.sendRoleRequest(Role.EQUAL,
+ RoleRecvStatus.MATCHED_CURRENT_ROLE);
+ if (!supportsRRMsg) {
+ log.warn("Switch {} does not support role request messages "
+ + "of any kind. No role messages were sent. "
+ + "This controller instance SHOULD become MASTER "
+ + "from the registry process. ",
+ h.getSwitchInfoString());
+ }
+ h.setState(WAIT_INITIAL_ROLE);
+ // request control of switch from global registry -
+ // necessary even if this is the only controller the
+ // switch is connected to.
+ h.controller.submitRegistryRequest(h.sw.getId());
+ } catch (IOException e) {
+ log.error("Exception when sending role request: {} ",
+ e.getMessage());
+ // FIXME shouldn't we disconnect?
+ }
+ }
+
+ @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 a role reply message in response to a role request
+ * sent after hearing back from the registry service -- OR -- we are
+ * just waiting to hear back from the registry service in the case that
+ * the switch does not support role messages. If completed successfully,
+ * the controller's role for this switch will be set here.
+ * Before we move to the state corresponding to the role, we allow the
+ * switch specific driver to complete its configuration. This configuration
+ * typically depends on the role the controller is playing for this switch.
+ * And so we set the switch role (for 'this' controller) before we start
+ * the driver-sub-handshake.
+ * Next State: WAIT_SWITCH_DRIVER_SUB_HANDSHAKE
+ */
+ WAIT_INITIAL_ROLE(false) {
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m)
+ throws SwitchStateException {
+ // role changer will ignore the error if it isn't for it
+ RoleRecvStatus rrstatus = h.roleChanger.deliverError(m);
+ if (rrstatus == RoleRecvStatus.OTHER_EXPECTATION) {
+ logError(h, m);
+ }
+ }
+
+ @Override
+ void processOFExperimenter(OFChannelHandler h, OFExperimenter m)
+ throws IOException, SwitchStateException {
+ Role role = extractNiciraRoleReply(h, m);
+ // If role == null it means the vendor (experimenter) message
+ // wasn't really a Nicira role reply. We ignore this case.
+ if (role != null) {
+ RoleReplyInfo rri = new RoleReplyInfo(role, null, m.getXid());
+ RoleRecvStatus rrs = h.roleChanger.deliverRoleReply(rri);
+ if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) {
+ setRoleAndStartDriverHandshake(h, rri.getRole());
+ } // else do nothing - wait for the correct expected reply
+ } else {
+ unhandledMessageReceived(h, m);
+ }
+ }
+
+ @Override
+ void processOFRoleReply(OFChannelHandler h, OFRoleReply m)
+ throws SwitchStateException, IOException {
+ RoleReplyInfo rri = extractOFRoleReply(h, m);
+ RoleRecvStatus rrs = h.roleChanger.deliverRoleReply(rri);
+ if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) {
+ setRoleAndStartDriverHandshake(h, rri.getRole());
+ } // else do nothing - wait for the correct expected reply
+ }
+
+ @Override
+ void handleUnsentRoleMessage(OFChannelHandler h, Role role,
+ RoleRecvStatus expectation) throws IOException {
+ // typically this is triggered for a switch where role messages
+ // are not supported - we confirm that the role being set is
+ // master and move to the next state
+ if (expectation == RoleRecvStatus.MATCHED_SET_ROLE) {
+ if (role == Role.MASTER) {
+ setRoleAndStartDriverHandshake(h, role);
+ } else {
+ 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);
+ }
+ } // else do nothing - wait to hear back from registry
+
+ }
+
+ private void setRoleAndStartDriverHandshake(OFChannelHandler h,
+ Role role) throws IOException {
+ h.setSwitchRole(role);
+ h.sw.startDriverHandshake();
+ if (h.sw.isDriverHandshakeComplete()) {
+ Role mySwitchRole = h.sw.getRole();
+ if (mySwitchRole == Role.MASTER) {
+ log.info("Switch-driver sub-handshake complete. "
+ + "Activating switch {} with Role: MASTER",
+ h.getSwitchInfoString());
+ handlePendingPortStatusMessages(h); //before activation
+ boolean success = h.controller.addActivatedMasterSwitch(
+ h.sw.getId(), h.sw);
+ if (!success) {
+ disconnectDuplicate(h);
+ return;
+ }
+ h.setState(MASTER);
+ } else {
+ log.info("Switch-driver sub-handshake complete. "
+ + "Activating switch {} with Role: EQUAL",
+ h.getSwitchInfoString());
+ handlePendingPortStatusMessages(h); //before activation
+ boolean success = h.controller.addActivatedEqualSwitch(
+ h.sw.getId(), h.sw);
+ if (!success) {
+ disconnectDuplicate(h);
+ return;
+ }
+ h.setState(EQUAL);
+ }
+ } else {
+ h.setState(WAIT_SWITCH_DRIVER_SUB_HANDSHAKE);
+ }
+ }
+
+ @Override
+ void processOFFeaturesReply(OFChannelHandler h, OFFeaturesReply m)
+ throws IOException, SwitchStateException {
+ illegalMessageReceived(h, m);
+ }
+
+ @Override
+ void processOFStatisticsReply(OFChannelHandler h, OFStatsReply m)
+ throws SwitchStateException {
+ illegalMessageReceived(h, m);
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException, SwitchStateException {
+ 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 {
+ if (m.getType() == OFType.ECHO_REQUEST) {
+ processOFEchoRequest(h, (OFEchoRequest) m);
+ } else {
+ // FIXME: other message to handle here?
+ h.sw.processDriverHandshakeMessage(m);
+ if (h.sw.isDriverHandshakeComplete()) {
+ // consult the h.sw role and goto that state
+ Role mySwitchRole = h.sw.getRole();
+ if (mySwitchRole == Role.MASTER) {
+ log.info("Switch-driver sub-handshake complete. "
+ + "Activating switch {} with Role: MASTER",
+ h.getSwitchInfoString());
+ handlePendingPortStatusMessages(h); //before activation
+ boolean success = h.controller.addActivatedMasterSwitch(
+ h.sw.getId(), h.sw);
+ if (!success) {
+ disconnectDuplicate(h);
+ return;
+ }
+ h.setState(MASTER);
+ } else {
+ log.info("Switch-driver sub-handshake complete. "
+ + "Activating switch {} with Role: EQUAL",
+ h.getSwitchInfoString());
+ handlePendingPortStatusMessages(h); //before activation
+ boolean success = h.controller.addActivatedEqualSwitch(
+ h.sw.getId(), h.sw);
+ if (!success) {
+ disconnectDuplicate(h);
+ return;
+ }
+ h.setState(EQUAL);
+ }
+ }
+ }
+ }
+
+ @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.
+ */
+ MASTER(true) {
+ @LogMessageDoc(level = "WARN",
+ message = "Received permission error from switch {} while"
+ + "being master. Reasserting master role.",
+ explanation = "The switch has denied an operation likely "
+ + "indicating inconsistent controller roles",
+ recommendation = "This situation can occurs transiently during role"
+ + " changes. If, however, the condition persists or happens"
+ + " frequently this indicates a role inconsistency. "
+ + LogMessageDoc.CHECK_CONTROLLER)
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m)
+ throws IOException, SwitchStateException {
+ // first check if the error msg is in response to a role-request message
+ RoleRecvStatus rrstatus = h.roleChanger.deliverError(m);
+ if (rrstatus != RoleRecvStatus.OTHER_EXPECTATION) {
+ // rolechanger has handled the error message - we are done
+ return;
+ }
+
+ // 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
+ h.counters.epermErrorWhileSwitchIsMaster.updateCounterWithFlush();
+ log.warn("Received permission error from switch {} while" +
+ "being master. Reasserting master role.",
+ h.getSwitchInfoString());
+ //h.controller.reassertRole(h, Role.MASTER);
+ // XXX S reassert in role changer or reconsider if all this
+ // stuff is really needed
+ } 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.sw.deliverStatisticsReply(m);
+ }
+
+ @Override
+ void processOFExperimenter(OFChannelHandler h, OFExperimenter m)
+ throws IOException, SwitchStateException {
+ Role role = extractNiciraRoleReply(h, m);
+ if (role == null) {
+ // The message wasn't really a Nicira role reply. We just
+ // dispatch it to the OFMessage listeners in this case.
+ h.dispatchMessage(m);
+ return;
+ }
+
+ RoleRecvStatus rrs = h.roleChanger.deliverRoleReply(
+ new RoleReplyInfo(role, null, m.getXid()));
+ if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) {
+ checkAndSetRoleTransition(h, role);
+ }
+ }
+
+ @Override
+ void processOFRoleReply(OFChannelHandler h, OFRoleReply m)
+ throws SwitchStateException, IOException {
+ RoleReplyInfo rri = extractOFRoleReply(h, m);
+ RoleRecvStatus rrs = h.roleChanger.deliverRoleReply(rri);
+ if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) {
+ checkAndSetRoleTransition(h, rri.getRole());
+ }
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException, SwitchStateException {
+ handlePortStatusMessage(h, m, true);
+ h.dispatchMessage(m);
+ }
+
+ @Override
+ void processOFPacketIn(OFChannelHandler h, OFPacketIn m)
+ throws IOException {
+ h.dispatchMessage(m);
+ }
+
+ @Override
+ void processOFFlowRemoved(OFChannelHandler h,
+ OFFlowRemoved m) throws IOException {
+ h.dispatchMessage(m);
+ }
+
+ @Override
+ void processOFBarrierReply(OFChannelHandler h, OFBarrierReply m)
+ throws IOException {
+ h.dispatchMessage(m);
+ }
+
+ },
+
+ /**
+ * This controller is in EQUAL role for this switch. We enter this state
+ * after some /other/ controller instance wins mastership-role over this
+ * switch. The EQUAL role can be considered the same as the SLAVE role
+ * if this controller does NOT send commands or packets to the switch.
+ * This should always be true for OF1.0 switches. XXX S need to enforce.
+ *
+ * For OF1.3 switches, choosing this state as EQUAL instead of SLAVE,
+ * gives us the flexibility that if an app wants to send commands/packets
+ * to switches, it can, even thought it is running on a controller instance
+ * that is not in a MASTER role for this switch. Of course, it is the job
+ * of the app to ensure that commands/packets sent by this (EQUAL) controller
+ * instance does not clash/conflict with commands/packets sent by the MASTER
+ * controller for this switch. Neither the controller instances, nor the
+ * switch provides any kind of resolution mechanism should conflicts occur.
+ */
+ EQUAL(true) {
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m)
+ throws IOException, SwitchStateException {
+ // role changer will ignore the error if it isn't for it
+ RoleRecvStatus rrstatus = h.roleChanger.deliverError(m);
+ if (rrstatus == RoleRecvStatus.OTHER_EXPECTATION) {
+ logError(h, m);
+ h.dispatchMessage(m);
+ }
+ }
+
+ @Override
+ void processOFStatisticsReply(OFChannelHandler h,
+ OFStatsReply m) {
+ h.sw.deliverStatisticsReply(m);
+ }
+
+ @Override
+ void processOFExperimenter(OFChannelHandler h, OFExperimenter m)
+ throws IOException, SwitchStateException {
+ Role role = extractNiciraRoleReply(h, m);
+ // If role == null it means the message wasn't really a
+ // Nicira role reply. We ignore it in this state.
+ if (role != null) {
+ RoleRecvStatus rrs = h.roleChanger.deliverRoleReply(
+ new RoleReplyInfo(role, null, m.getXid()));
+ if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) {
+ checkAndSetRoleTransition(h, role);
+ }
+ } else {
+ unhandledMessageReceived(h, m);
+ }
+ }
+
+ @Override
+ void processOFRoleReply(OFChannelHandler h, OFRoleReply m)
+ throws SwitchStateException, IOException {
+ RoleReplyInfo rri = extractOFRoleReply(h, m);
+ RoleRecvStatus rrs = h.roleChanger.deliverRoleReply(rri);
+ if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) {
+ checkAndSetRoleTransition(h, rri.getRole());
+ }
+ }
+
+ // XXX S needs more handlers for 1.3 switches in equal role
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException, SwitchStateException {
+ handlePortStatusMessage(h, m, true);
+ }
+
+ @Override
+ @LogMessageDoc(level = "WARN",
+ message = "Received PacketIn from switch {} while "
+ + "being slave. Reasserting slave role.",
+ explanation = "The switch has receive a PacketIn despite being "
+ + "in slave role indicating inconsistent controller roles",
+ recommendation = "This situation can occurs transiently during role"
+ + " changes. If, however, the condition persists or happens"
+ + " frequently this indicates a role inconsistency. "
+ + LogMessageDoc.CHECK_CONTROLLER)
+ void processOFPacketIn(OFChannelHandler h, OFPacketIn m) throws IOException {
+ // we don't expect packetIn while slave, reassert we are slave
+ h.counters.packetInWhileSwitchIsSlave.updateCounterNoFlush();
+ log.warn("Received PacketIn from switch {} while" +
+ "being slave. Reasserting slave role.", h.sw);
+ //h.controller.reassertRole(h, Role.SLAVE);
+ // XXX reassert in role changer
+ }
+ };
+
+ 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
+ */
+ // 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) {
+ h.counters.unhandledMessage.updateCounterNoFlush();
+ if (log.isDebugEnabled()) {
+ String msg = getSwitchStateMessage(h, m,
+ "Ignoring unexpected message");
+ log.debug(msg);
+ }
+ }
+
+ /**
+ * Log an OpenFlow error message from a switch.
+ * @param sw The switch that sent the error
+ * @param error The error message
+ */
+ @LogMessageDoc(level = "ERROR",
+ message = "Error {error type} {error code} from {switch} "
+ + "in state {state}",
+ explanation = "The switch responded with an unexpected error"
+ + "to an OpenFlow message from the controller",
+ recommendation = "This could indicate improper network operation. "
+ + "If the problem persists restarting the switch and "
+ + "controller may help."
+ )
+ 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();
+ }
+
+ /**
+ * 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 h The channel handler receiving the message
+ * @param vendorMessage 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.
+ */
+ protected Role extractNiciraRoleReply(OFChannelHandler h,
+ OFExperimenter experimenterMsg) throws SwitchStateException {
+ int vendor = (int) experimenterMsg.getExperimenter();
+ if (vendor != 0x2320) {
+ return null;
+ }
+ OFNiciraControllerRoleReply nrr =
+ (OFNiciraControllerRoleReply) experimenterMsg;
+
+ Role role = null;
+ OFNiciraControllerRole ncr = nrr.getRole();
+ switch(ncr) {
+ case ROLE_MASTER:
+ role = Role.MASTER;
+ break;
+ case ROLE_OTHER:
+ role = Role.EQUAL;
+ break;
+ case ROLE_SLAVE:
+ role = Role.SLAVE;
+ break;
+ default: //handled below
+ }
+
+ if (role == null) {
+ String msg = String.format("Switch: [%s], State: [%s], "
+ + "received NX_ROLE_REPLY with invalid role "
+ + "value %s",
+ h.getSwitchInfoString(),
+ this.toString(),
+ nrr.getRole());
+ throw new SwitchStateException(msg);
+ }
+ return role;
+ }
+
+ /**
+ * Helper class returns role reply information in the format understood
+ * by the controller.
+ */
+ protected static class RoleReplyInfo {
+ private Role role;
+ private U64 genId;
+ private long xid;
+
+ RoleReplyInfo(Role role, U64 genId, long xid) {
+ this.role = role;
+ this.genId = genId;
+ this.xid = xid;
+ }
+ public Role getRole() { return role; }
+ public U64 getGenId() { return genId; }
+ public long getXid() { return xid; }
+ @Override
+ public String toString() {
+ return "[Role:" + role + " GenId:" + genId + " Xid:" + xid + "]";
+ }
+ }
+
+ /**
+ * Extract the role information from an OF1.3 Role Reply Message.
+ * @param h
+ * @param rrmsg
+ * @return RoleReplyInfo object
+ * @throws SwitchStateException
+ */
+ protected RoleReplyInfo extractOFRoleReply(OFChannelHandler h,
+ OFRoleReply rrmsg) throws SwitchStateException {
+ OFControllerRole cr = rrmsg.getRole();
+ Role role = null;
+ switch(cr) {
+ case ROLE_EQUAL:
+ role = Role.EQUAL;
+ break;
+ case ROLE_MASTER:
+ role = Role.MASTER;
+ break;
+ case ROLE_SLAVE:
+ role = Role.SLAVE;
+ break;
+ case ROLE_NOCHANGE: // switch should send current role
+ default:
+ String msg = String.format("Unknown controller role %s "
+ + "received from switch %s", cr, h.sw);
+ throw new SwitchStateException(msg);
+ }
+
+ return new RoleReplyInfo(role, rrmsg.getGenerationId(), rrmsg.getXid());
+ }
+
+ /**
+ * 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);
+ }
+
+ Collection<PortChangeEvent> changes = h.sw.processOFPortStatus(m);
+ if (doNotify) {
+ for (PortChangeEvent ev: changes) {
+ h.controller.notifyPortChanged(h.sw.getId(), ev.port, ev.type);
+ }
+ }
+ }
+
+ /**
+ * Checks if the role received (from the role-reply msg) is different
+ * from the existing role in the IOFSwitch object for this controller.
+ * If so, it transitions the controller to the new role. Note that
+ * the caller should have already verified that the role-reply msg
+ * received was in response to a role-request msg sent out by this
+ * controller after hearing from the registry service.
+ *
+ * @param h the ChannelHandler that received the message
+ * @param role the role in the recieved role reply message
+ */
+ protected void checkAndSetRoleTransition(OFChannelHandler h, Role role) {
+ // we received a role-reply in response to a role message
+ // sent after hearing from the registry service. It is
+ // possible that the role of this controller instance for
+ // this switch has changed:
+ // for 1.0 switch: from MASTER to SLAVE
+ // for 1.3 switch: from MASTER to EQUAL
+ if ((h.sw.getRole() == Role.MASTER && role == Role.SLAVE) ||
+ (h.sw.getRole() == Role.MASTER && role == Role.EQUAL)) {
+ // the mastership has changed
+ h.sw.setRole(role);
+ h.setState(EQUAL);
+ h.controller.transitionToEqualSwitch(h.sw.getId());
+ return;
+ }
+
+ // or for both 1.0 and 1.3 switches from EQUAL to MASTER.
+ // note that for 1.0, even though we mean SLAVE,
+ // internally we call the role EQUAL.
+ if (h.sw.getRole() == Role.EQUAL && role == Role.MASTER) {
+ // the mastership has changed
+ h.sw.setRole(role);
+ h.setState(MASTER);
+ h.controller.transitionToMasterSwitch(h.sw.getId());
+ return;
+ }
+ }
+
+ /**
+ * 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 {
+ h.roleChanger.checkTimeout();
+ 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);
+ }
+
+ void handleUnsentRoleMessage(OFChannelHandler h, Role role,
+ RoleRecvStatus expectation) throws IOException {
+ // do nothing in most states
+ }
+ }
+
+
+
+ //*************************
+ // Channel handler methods
+ //*************************
+
+ @Override
+ @LogMessageDoc(message = "New switch connection from {ip address}",
+ explanation = "A new switch has connected from the "
+ + "specified IP address")
+ public void channelConnected(ChannelHandlerContext ctx,
+ ChannelStateEvent e) throws Exception {
+ counters.switchConnected.updateCounterWithFlush();
+ channel = e.getChannel();
+ log.info("New switch connection from {}",
+ channel.getRemoteAddress());
+ sendHandshakeHelloMessage();
+ setState(ChannelState.WAIT_HELLO);
+ }
+
+ @Override
+ @LogMessageDoc(message = "Disconnected switch {switch information}",
+ explanation = "The specified switch has disconnected.")
+ 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.
+ controller.removeConnectedSwitch(thisdpid);
+ } 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
+ @LogMessageDocs({
+ @LogMessageDoc(level = "ERROR",
+ message = "Disconnecting switch {switch} due to read timeout",
+ explanation = "The connected switch has failed to send any "
+ + "messages or respond to echo requests",
+ recommendation = LogMessageDoc.CHECK_SWITCH),
+ @LogMessageDoc(level = "ERROR",
+ message = "Disconnecting switch {switch}: failed to "
+ + "complete handshake",
+ explanation = "The switch did not respond correctly "
+ + "to handshake messages",
+ recommendation = LogMessageDoc.CHECK_SWITCH),
+ @LogMessageDoc(level = "ERROR",
+ message = "Disconnecting switch {switch} due to IO Error: {}",
+ explanation = "There was an error communicating with the switch",
+ recommendation = LogMessageDoc.CHECK_SWITCH),
+ @LogMessageDoc(level = "ERROR",
+ message = "Disconnecting switch {switch} due to switch "
+ + "state error: {error}",
+ explanation = "The switch sent an unexpected message",
+ recommendation = LogMessageDoc.CHECK_SWITCH),
+ @LogMessageDoc(level = "ERROR",
+ message = "Disconnecting switch {switch} due to "
+ + "message parse failure",
+ explanation = "Could not parse a message from the switch",
+ recommendation = LogMessageDoc.CHECK_SWITCH),
+ @LogMessageDoc(level = "ERROR",
+ message = "Terminating controller due to storage exception",
+ explanation = Controller.ERROR_DATABASE,
+ recommendation = LogMessageDoc.CHECK_CONTROLLER),
+ @LogMessageDoc(level = "ERROR",
+ message = "Could not process message: queue full",
+ explanation = "OpenFlow messages are arriving faster than "
+ + "the controller can process them.",
+ recommendation = LogMessageDoc.CHECK_CONTROLLER),
+ @LogMessageDoc(level = "ERROR",
+ message = "Error while processing message "
+ + "from switch {switch} {cause}",
+ explanation = "An error occurred processing the switch message",
+ recommendation = LogMessageDoc.GENERIC_ACTION)
+ })
+ 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());
+ counters.switchDisconnectReadTimeout.updateCounterWithFlush();
+ ctx.getChannel().close();
+ } else if (e.getCause() instanceof HandshakeTimeoutException) {
+ log.error("Disconnecting switch {}: failed to complete handshake",
+ getSwitchInfoString());
+ counters.switchDisconnectHandshakeTimeout.updateCounterWithFlush();
+ 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());
+ }
+ counters.switchDisconnectIOError.updateCounterWithFlush();
+ 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());
+ }
+ counters.switchDisconnectSwitchStateException.updateCounterWithFlush();
+ ctx.getChannel().close();
+ } else if (e.getCause() instanceof OFParseError) {
+ log.error("Disconnecting switch "
+ + getSwitchInfoString() +
+ " due to message parse failure",
+ e.getCause());
+ counters.switchDisconnectParseError.updateCounterWithFlush();
+ ctx.getChannel().close();
+ } else if (e.getCause() instanceof RejectedExecutionException) {
+ log.warn("Could not process message: queue full");
+ counters.rejectedExecutionException.updateCounterWithFlush();
+ } else {
+ log.error("Error while processing message from switch "
+ + getSwitchInfoString()
+ + "state " + this.state, e.getCause());
+ counters.switchDisconnectOtherException.updateCounterWithFlush();
+ 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) {
+ counters.messageReceived.updateCounterNoFlush();
+ // Do the actual packet processing
+ state.processOFMessage(this, ofm);
+ }
+ } else {
+ counters.messageReceived.updateCounterNoFlush();
+ 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) throws IOException {
+ sw.handleMessage(m);
+ }
+
+ /**
+ * Return a string describing this switch based on the already available
+ * information (DPID and/or remote socket).
+ * @return
+ */
+ 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));
+ }
+
+ private void setSwitchRole(Role role) {
+ sw.setRole(role);
+ }
+
+ /**
+ * 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;
+ }
+
+ void useRoleChangerWithOtherTimeoutForTesting(long roleTimeoutMs) {
+ roleChanger = new RoleChanger(roleTimeoutMs);
+ }
+
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageDecoder.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageDecoder.java
new file mode 100644
index 0000000..ff6fbf5
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/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 net.onrc.onos.of.ctl.internal;
+
+
+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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageEncoder.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OFMessageEncoder.java
new file mode 100644
index 0000000..86933fc
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/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 net.onrc.onos.of.ctl.internal;
+
+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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OpenflowPipelineFactory.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/OpenflowPipelineFactory.java
new file mode 100644
index 0000000..30f0287
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/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 net.onrc.onos.of.ctl.internal;
+
+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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeAlreadyStarted.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeAlreadyStarted.java
new file mode 100644
index 0000000..92c673c
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeAlreadyStarted.java
@@ -0,0 +1,14 @@
+package net.onrc.onos.of.ctl.internal;
+
+/**
+ * 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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeCompleted.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeCompleted.java
new file mode 100644
index 0000000..1600854
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeCompleted.java
@@ -0,0 +1,19 @@
+package net.onrc.onos.of.ctl.internal;
+
+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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeException.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeException.java
new file mode 100644
index 0000000..c7d68f3
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeException.java
@@ -0,0 +1,26 @@
+package net.onrc.onos.of.ctl.internal;
+
+/**
+ * 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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeNotStarted.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeNotStarted.java
new file mode 100644
index 0000000..d568cc6
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeNotStarted.java
@@ -0,0 +1,15 @@
+package net.onrc.onos.of.ctl.internal;
+
+/**
+ * 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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeStateException.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeStateException.java
new file mode 100644
index 0000000..6091a86
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchDriverSubHandshakeStateException.java
@@ -0,0 +1,15 @@
+package net.onrc.onos.of.ctl.internal;
+
+/**
+ * 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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchStateException.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/SwitchStateException.java
new file mode 100644
index 0000000..e51b60d
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/internal/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 net.onrc.onos.of.ctl.internal;
+
+/**
+ * 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/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/ControllerRegistryEntry.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/ControllerRegistryEntry.java
new file mode 100644
index 0000000..2472f64
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/ControllerRegistryEntry.java
@@ -0,0 +1,66 @@
+package net.onrc.onos.of.ctl.registry;
+
+
+
+public class ControllerRegistryEntry implements Comparable<ControllerRegistryEntry> {
+ //
+ // TODO: Refactor the implementation and decide whether controllerId
+ // is needed. If "yes", we might need to consider it inside the
+ // compareTo(), equals() and hashCode() implementations.
+ //
+ private final String controllerId;
+ private final int sequenceNumber;
+
+ public ControllerRegistryEntry(String controllerId, int sequenceNumber) {
+ this.controllerId = controllerId;
+ this.sequenceNumber = sequenceNumber;
+ }
+
+ public String getControllerId() {
+ return controllerId;
+ }
+
+ /**
+ * Compares this object with the specified object for order.
+ * NOTE: the test is based on ControllerRegistryEntry sequence numbers,
+ * and doesn't include the controllerId.
+ *
+ * @param o the object to be compared.
+ * @return a negative integer, zero, or a positive integer as this object
+ * is less than, equal to, or greater than the specified object.
+ */
+ @Override
+ public int compareTo(ControllerRegistryEntry o) {
+ return this.sequenceNumber - o.sequenceNumber;
+ }
+
+ /**
+ * Test whether some other object is "equal to" this one.
+ * NOTE: the test is based on ControllerRegistryEntry sequence numbers,
+ * and doesn't include the controllerId.
+ *
+ * @param obj the reference object with which to compare.
+ * @return true if this object is the same as the obj argument; false
+ * otherwise.
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof ControllerRegistryEntry) {
+ ControllerRegistryEntry other = (ControllerRegistryEntry) obj;
+ return this.sequenceNumber == other.sequenceNumber;
+ }
+ return false;
+ }
+
+ /**
+ * Get the hash code for the object.
+ * NOTE: the computation is based on ControllerRegistryEntry sequence
+ * numbers, and doesn't include the controller ID.
+ *
+ * @return a hash code value for this object.
+ */
+ @Override
+ public int hashCode() {
+ return Integer.valueOf(this.sequenceNumber).hashCode();
+ }
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IControllerRegistry.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IControllerRegistry.java
new file mode 100644
index 0000000..0b67338
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IControllerRegistry.java
@@ -0,0 +1,155 @@
+package net.onrc.onos.of.ctl.registry;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import net.onrc.onos.of.ctl.util.InstanceId;
+
+/**
+ * A registry service that allows ONOS to register controllers and switches in a
+ * way that is global to the entire ONOS cluster. The registry is the arbiter
+ * for allowing controllers to control switches.
+ * <p/>
+ * The OVS/OF1.{2,3} fault tolerance model is a switch connects to multiple
+ * controllers, and the controllers send role requests to tell the switch their
+ * role in controlling the switch.
+ * <p/>
+ * The ONOS fault tolerance model allows only a single controller to have
+ * control of a switch (MASTER role) at once. Controllers therefore need a
+ * mechanism that enables them to decide who should control a each switch. The
+ * registry service provides this mechanism.
+ */
+public interface IControllerRegistry {
+
+ /**
+ * Callback interface for control change events.
+ */
+ public interface ControlChangeCallback {
+ /**
+ * Called whenever the control changes from the point of view of the
+ * registry. The callee can check whether they have control or not using
+ * the hasControl parameter.
+ *
+ * @param dpid The switch that control has changed for
+ * @param hasControl Whether the listener now has control or not
+ */
+ void controlChanged(long dpid, boolean hasControl);
+ }
+
+ /**
+ * Request for control of a switch. This method does not block. When control
+ * for a switch changes, the controlChanged method on the callback object
+ * will be called. This happens any time the control changes while the
+ * request is still active (until releaseControl is called)
+ *
+ * @param dpid Switch to request control for
+ * @param cb Callback that will be used to notify caller of control changes
+ * @throws RegistryException Errors contacting the registry service
+ */
+ public void requestControl(long dpid, ControlChangeCallback cb)
+ throws RegistryException;
+
+ /**
+ * Stop trying to take control of a switch. This removes the entry for this
+ * controller requesting this switch in the registry. If the controller had
+ * control when this is called, another controller will now gain control of
+ * the switch. This call doesn't block.
+ *
+ * @param dpid Switch to release control of
+ */
+ public void releaseControl(long dpid);
+
+ /**
+ * Check whether the controller has control of the switch This call doesn't
+ * block.
+ *
+ * @param dpid Switch to check control of
+ * @return true if controller has control of the switch.
+ */
+ public boolean hasControl(long dpid);
+
+ /**
+ * Check whether this instance is the leader for the cluster. This call
+ * doesn't block.
+ *
+ * @return true if the instance is the leader for the cluster, otherwise
+ * false.
+ */
+ public boolean isClusterLeader();
+
+ /**
+ * Gets the unique ID used to identify this ONOS instance in the cluster.
+ *
+ * @return Instance ID.
+ */
+ public InstanceId getOnosInstanceId();
+
+ /**
+ * Register a controller to the ONOS cluster. Must be called before the
+ * registry can be used to take control of any switches.
+ *
+ * @param controllerId A unique string ID identifying this controller in the
+ * cluster
+ * @throws RegistryException for errors connecting to registry service,
+ * controllerId already registered
+ */
+ public void registerController(String controllerId)
+ throws RegistryException;
+
+ /**
+ * Get all controllers in the cluster.
+ *
+ * @return Collection of controller IDs
+ * @throws RegistryException on error
+ */
+ public Collection<String> getAllControllers() throws RegistryException;
+
+ /**
+ * Get all switches in the cluster, along with which controller is in
+ * control of them (if any) and any other controllers that have requested
+ * control.
+ *
+ * @return Map of all switches.
+ */
+ public Map<String, List<ControllerRegistryEntry>> getAllSwitches();
+
+ /**
+ * Get the controller that has control of a given switch.
+ *
+ * @param dpid Switch to find controller for
+ * @return controller ID
+ * @throws RegistryException Errors contacting registry service
+ */
+ public String getControllerForSwitch(long dpid) throws RegistryException;
+
+ /**
+ * Get all switches controlled by a given controller.
+ *
+ * @param controllerId ID of the controller
+ * @return Collection of dpids
+ */
+ public Collection<Long> getSwitchesControlledByController(String controllerId);
+
+ /**
+ * Get a unique Id Block.
+ *
+ * @return Id Block.
+ */
+ public IdBlock allocateUniqueIdBlock();
+
+ /**
+ * Get next unique id and retrieve a new range of ids if needed.
+ *
+ * @param range range to use for the identifier
+ * @return Id Block.
+ */
+ public IdBlock allocateUniqueIdBlock(long range);
+
+ /**
+ * Get a globally unique ID.
+ *
+ * @return a globally unique ID.
+ */
+ public long getNextUniqueId();
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IdBlock.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IdBlock.java
new file mode 100644
index 0000000..45d3c83
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/IdBlock.java
@@ -0,0 +1,32 @@
+package net.onrc.onos.of.ctl.registry;
+
+public class IdBlock {
+ private final long start;
+ private final long end;
+ private final long size;
+
+ public IdBlock(long start, long end, long size) {
+ this.start = start;
+ this.end = end;
+ this.size = size;
+ }
+
+ public long getStart() {
+ return start;
+ }
+
+ public long getEnd() {
+ return end;
+ }
+
+ public long getSize() {
+ return size;
+ }
+
+ @Override
+ public String toString() {
+ return "IdBlock [start=" + start + ", end=" + end + ", size=" + size
+ + "]";
+ }
+}
+
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/RegistryException.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/RegistryException.java
new file mode 100644
index 0000000..06f5932
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/registry/RegistryException.java
@@ -0,0 +1,15 @@
+package net.onrc.onos.of.ctl.registry;
+
+public class RegistryException extends Exception {
+
+ private static final long serialVersionUID = -8276300722010217913L;
+
+ public RegistryException(String message) {
+ super(message);
+ }
+
+ public RegistryException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/Dpid.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/Dpid.java
new file mode 100644
index 0000000..5544354
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/Dpid.java
@@ -0,0 +1,74 @@
+package net.onrc.onos.of.ctl.util;
+
+import org.projectfloodlight.openflow.util.HexString;
+
+/**
+ * The class representing a network switch DPID.
+ * This class is immutable.
+ */
+public final class Dpid {
+ 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;
+ }
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/DummySwitchForTesting.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/DummySwitchForTesting.java
new file mode 100644
index 0000000..a8eabce
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/DummySwitchForTesting.java
@@ -0,0 +1,360 @@
+package net.onrc.onos.of.ctl.util;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Future;
+
+import org.jboss.netty.channel.Channel;
+import org.projectfloodlight.openflow.protocol.OFActionType;
+import org.projectfloodlight.openflow.protocol.OFCapabilities;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+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.OFPortStatus;
+import org.projectfloodlight.openflow.protocol.OFStatsReply;
+import org.projectfloodlight.openflow.protocol.OFStatsRequest;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.projectfloodlight.openflow.types.DatapathId;
+import org.projectfloodlight.openflow.types.U64;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import net.onrc.onos.of.ctl.IOFSwitch;
+import net.onrc.onos.of.ctl.Role;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService.CounterException;
+
+public class DummySwitchForTesting implements IOFSwitch {
+
+ protected static final Logger log = LoggerFactory.getLogger(DummySwitchForTesting.class);
+
+ private Channel channel;
+ private boolean connected = false;
+ private OFVersion ofv = OFVersion.OF_10;
+
+ private Collection<OFPortDesc> ports;
+
+ private DatapathId datapathId;
+
+ private Set<OFCapabilities> capabilities;
+
+ private int buffers;
+
+ private byte tables;
+
+ private String stringId;
+
+ private Role role;
+
+ @Override
+ public void disconnectSwitch() {
+ this.channel.close();
+ }
+
+ @Override
+ public void write(OFMessage m) throws IOException {
+ this.channel.write(m);
+
+ }
+
+ @Override
+ public void write(List<OFMessage> msglist) throws IOException {
+ for (OFMessage m : msglist) {
+ this.channel.write(m);
+ }
+
+ }
+
+ @Override
+ public Date getConnectedSince() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public int getNextTransactionId() {
+ return 0;
+ }
+
+ @Override
+ public boolean isConnected() {
+ return this.connected;
+ }
+
+ @Override
+ public void setConnected(boolean connected) {
+ this.connected = connected;
+
+ }
+
+ @Override
+ public void flush() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setChannel(Channel channel) {
+ this.channel = channel;
+
+ }
+
+ @Override
+ public long getId() {
+ if (this.stringId == null) {
+ throw new RuntimeException("Features reply has not yet been set");
+ }
+ return this.datapathId.getLong();
+ }
+
+ @Override
+ public String getStringId() {
+ // TODO Auto-generated method stub
+ return "DummySwitch";
+ }
+
+ @Override
+ public int getNumBuffers() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public Set<OFCapabilities> getCapabilities() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public byte getNumTables() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public OFDescStatsReply getSwitchDescription() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void cancelFeaturesReply(int transactionId) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Set<OFActionType> getActions() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setOFVersion(OFVersion version) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public OFVersion getOFVersion() {
+ return this.ofv;
+ }
+
+ @Override
+ public Collection<OFPortDesc> getEnabledPorts() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Collection<Integer> getEnabledPortNumbers() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public OFPortDesc getPort(int portNumber) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public OFPortDesc getPort(String portName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public OrderedCollection<PortChangeEvent> processOFPortStatus(
+ OFPortStatus ps) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Collection<OFPortDesc> getPorts() {
+ return ports;
+ }
+
+ @Override
+ public boolean portEnabled(int portName) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public OrderedCollection<PortChangeEvent> setPorts(
+ Collection<OFPortDesc> p) {
+ this.ports = p;
+ return null;
+ }
+
+ @Override
+ public Map<Object, Object> getAttributes() {
+ return null;
+ }
+
+ @Override
+ public boolean hasAttribute(String name) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public Object getAttribute(String name) {
+ return Boolean.FALSE;
+ }
+
+ @Override
+ public void setAttribute(String name, Object value) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Object removeAttribute(String name) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void deliverStatisticsReply(OFMessage reply) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void cancelStatisticsReply(int transactionId) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void cancelAllStatisticsReplies() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Future<List<OFStatsReply>> getStatistics(OFStatsRequest<?> request)
+ throws IOException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void clearAllFlowMods() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Role getRole() {
+ return this.role;
+ }
+
+ @Override
+ public void setRole(Role role) {
+ this.role = role;
+ }
+
+ @Override
+ public U64 getNextGenerationId() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setDebugCounterService(IDebugCounterService debugCounter)
+ throws CounterException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void startDriverHandshake() throws IOException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isDriverHandshakeComplete() {
+ return true;
+ }
+
+ @Override
+ public void processDriverHandshakeMessage(OFMessage m) {
+
+ }
+
+ @Override
+ public void setTableFull(boolean isFull) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setFeaturesReply(OFFeaturesReply featuresReply) {
+ if (featuresReply == null) {
+ log.error("Error setting featuresReply for switch: {}", getStringId());
+ return;
+ }
+ this.datapathId = featuresReply.getDatapathId();
+ this.capabilities = featuresReply.getCapabilities();
+ this.buffers = (int) featuresReply.getNBuffers();
+ this.tables = (byte) featuresReply.getNTables();
+ this.stringId = this.datapathId.toString();
+
+ }
+
+ @Override
+ public void setPortDescReply(OFPortDescStatsReply portDescReply) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void handleMessage(OFMessage m) {
+ log.info("Got packet {} but I am dumb so I don't know what to do.", m);
+ }
+
+ @Override
+ public boolean portEnabled(String portName) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public OrderedCollection<PortChangeEvent> comparePorts(
+ Collection<OFPortDesc> p) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/EnumBitmaps.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/EnumBitmaps.java
new file mode 100644
index 0000000..fe6ccc0
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/EnumBitmaps.java
@@ -0,0 +1,149 @@
+package net.onrc.onos.of.ctl.util;
+
+import java.util.EnumSet;
+import java.util.Set;
+
+/**
+ * A utility class to convert between integer based bitmaps for (OpenFlow)
+ * flags and Enum and EnumSet based representations.
+ *
+ * The enum used to represent individual flags needs to implement the
+ * BitmapableEnum interface.
+ *
+ * Example:
+ * {@code
+ * int bitmap = 0x11; // OFPPC_PORT_DOWN | OFPPC_NO_STP
+ * EnumSet<OFPortConfig> s = toEnumSet(OFPortConfig.class, bitmap);
+ * // s will contain OFPPC_PORT_DOWN and OFPPC_NO_STP
+ * }
+ *
+ * {@code
+ * EnumSet<OFPortConfig> s = EnumSet.of(OFPPC_NO_STP, OFPPC_PORT_DOWN);
+ * int bitmap = toBitmap(s); // returns 0x11
+ * }
+ *
+ */
+public final class EnumBitmaps {
+
+
+ private EnumBitmaps() { }
+
+ /**
+ * Enums used to represent individual flags needs to implement this
+ * interface.
+ */
+ public interface BitmapableEnum {
+ /** Return the value in the bitmap that the enum constant represents.
+ * The returned value must have only a single bit set. E.g.,1 << 3
+ */
+ int getValue();
+ }
+
+
+ /**
+ * Convert an integer bitmap to an EnumSet.
+ *
+ * See class description for example
+ * @param type The Enum class to use. Must implement BitmapableEnum
+ * @param bitmap The integer bitmap
+ * @return A newly allocated EnumSet representing the bits set in the
+ * bitmap
+ * @throws NullPointerException if type is null
+ * @throws IllegalArgumentException if any enum constant from type has
+ * more than one bit set.
+ * @throws IllegalArgumentException if the bitmap has any bits set not
+ * represented by an enum constant.
+ */
+ public static <E extends Enum<E> & BitmapableEnum>
+ EnumSet<E> toEnumSet(Class<E> type, int bitmap) {
+ if (type == null) {
+ throw new NullPointerException("Given enum type must not be null");
+ }
+ EnumSet<E> s = EnumSet.noneOf(type);
+ // allSetBitmap will eventually have all valid bits for the given
+ // type set.
+ int allSetBitmap = 0;
+ for (E element: type.getEnumConstants()) {
+ if (Integer.bitCount(element.getValue()) != 1) {
+ String msg = String.format("The %s (%x) constant of the " +
+ "enum %s is supposed to represent a bitmap entry but " +
+ "has more than one bit set.",
+ element.toString(), element.getValue(), type.getName());
+ throw new IllegalArgumentException(msg);
+ }
+ allSetBitmap |= element.getValue();
+ if ((bitmap & element.getValue()) != 0) {
+ s.add(element);
+ }
+ }
+ if (((~allSetBitmap) & bitmap) != 0) {
+ // check if only valid flags are set in the given bitmap
+ String msg = String.format("The bitmap %x for enum %s has " +
+ "bits set that are presented by any enum constant",
+ bitmap, type.getName());
+ throw new IllegalArgumentException(msg);
+ }
+ return s;
+ }
+
+ /**
+ * Return the bitmap mask with all possible bits set. E.g., If a bitmap
+ * has the individual flags 0x1, 0x2, and 0x8 (note the missing 0x4) then
+ * the mask will be 0xb (1011 binary)
+ *
+ * @param type The Enum class to use. Must implement BitmapableEnum
+ * @throws NullPointerException if type is null
+ * @throws IllegalArgumentException if any enum constant from type has
+ * more than one bit set
+ * @return an integer with all possible bits for the given bitmap enum
+ * type set.
+ */
+ public static <E extends Enum<E> & BitmapableEnum>
+ int getMask(Class<E> type) {
+ if (type == null) {
+ throw new NullPointerException("Given enum type must not be null");
+ }
+ // allSetBitmap will eventually have all valid bits for the given
+ // type set.
+ int allSetBitmap = 0;
+ for (E element: type.getEnumConstants()) {
+ if (Integer.bitCount(element.getValue()) != 1) {
+ String msg = String.format("The %s (%x) constant of the " +
+ "enum %s is supposed to represent a bitmap entry but " +
+ "has more than one bit set.",
+ element.toString(), element.getValue(), type.getName());
+ throw new IllegalArgumentException(msg);
+ }
+ allSetBitmap |= element.getValue();
+ }
+ return allSetBitmap;
+ }
+
+ /**
+ * Convert the given EnumSet to the integer bitmap representation.
+ * @param set The EnumSet to convert. The enum must implement
+ * BitmapableEnum
+ * @return the integer bitmap
+ * @throws IllegalArgumentException if an enum constant from the set (!) has
+ * more than one bit set
+ * @throws NullPointerException if the set is null
+ */
+ public static <E extends Enum<E> & BitmapableEnum>
+ int toBitmap(Set<E> set) {
+ if (set == null) {
+ throw new NullPointerException("Given set must not be null");
+ }
+ int bitmap = 0;
+ for (E element: set) {
+ if (Integer.bitCount(element.getValue()) != 1) {
+ String msg = String.format("The %s (%x) constant in the set " +
+ "is supposed to represent a bitmap entry but " +
+ "has more than one bit set.",
+ element.toString(), element.getValue());
+ throw new IllegalArgumentException(msg);
+ }
+ bitmap |= element.getValue();
+ }
+ return bitmap;
+ }
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/FilterIterator.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/FilterIterator.java
new file mode 100644
index 0000000..fdde82c
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/FilterIterator.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright 2012, 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 net.onrc.onos.of.ctl.util;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * An iterator that will filter values from an iterator and return only
+ * those values that match the predicate.
+ */
+public abstract class FilterIterator<T> implements Iterator<T> {
+ protected Iterator<T> subIterator;
+ protected T next;
+
+ /**
+ * Construct a filter iterator from the given sub iterator.
+ *
+ * @param subIterator the sub iterator over which we'll filter
+ */
+ public FilterIterator(Iterator<T> subIterator) {
+ super();
+ this.subIterator = subIterator;
+ }
+
+ /**
+ * Check whether the given value should be returned by the
+ * filter.
+ *
+ * @param value the value to check
+ * @return true if the value should be included
+ */
+ protected abstract boolean matches(T value);
+
+ // ***********
+ // Iterator<T>
+ // ***********
+
+ @Override
+ public boolean hasNext() {
+ if (next != null) {
+ return true;
+ }
+
+ while (subIterator.hasNext()) {
+ next = subIterator.next();
+ if (matches(next)) {
+ return true;
+ }
+ }
+ next = null;
+ return false;
+ }
+
+ @Override
+ public T next() {
+ if (hasNext()) {
+ T cur = next;
+ next = null;
+ return cur;
+ }
+ throw new NoSuchElementException();
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/InstanceId.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/InstanceId.java
new file mode 100644
index 0000000..861dec6
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/InstanceId.java
@@ -0,0 +1,47 @@
+package net.onrc.onos.of.ctl.util;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkArgument;
+
+/**
+ * The class representing an ONOS Instance ID.
+ *
+ * This class is immutable.
+ */
+public final class InstanceId {
+ private final String id;
+
+ /**
+ * Constructor from a string value.
+ *
+ * @param id the value to use.
+ */
+ public InstanceId(String id) {
+ this.id = checkNotNull(id);
+ checkArgument(!id.isEmpty(), "Empty ONOS Instance ID");
+ }
+
+ @Override
+ public int hashCode() {
+ return id.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+
+ if (!(obj instanceof InstanceId)) {
+ return false;
+ }
+
+ InstanceId that = (InstanceId) obj;
+ return this.id.equals(that.id);
+ }
+
+ @Override
+ public String toString() {
+ return id;
+ }
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/IterableIterator.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/IterableIterator.java
new file mode 100644
index 0000000..79f3c9d
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/IterableIterator.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright 2012 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 net.onrc.onos.of.ctl.util;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * Iterator over all values in an iterator of iterators.
+ *
+ * @param <T> the type of elements returned by this iterator
+ */
+public class IterableIterator<T> implements Iterator<T> {
+ Iterator<? extends Iterable<T>> subIterator;
+ Iterator<T> current = null;
+
+ public IterableIterator(Iterator<? extends Iterable<T>> subIterator) {
+ super();
+ this.subIterator = subIterator;
+ }
+
+ @Override
+ public boolean hasNext() {
+ if (current == null) {
+ if (subIterator.hasNext()) {
+ current = subIterator.next().iterator();
+ } else {
+ return false;
+ }
+ }
+ while (!current.hasNext() && subIterator.hasNext()) {
+ current = subIterator.next().iterator();
+ }
+
+ return current.hasNext();
+ }
+
+ @Override
+ public T next() {
+ if (hasNext()) {
+ return current.next();
+ }
+ throw new NoSuchElementException();
+ }
+
+ @Override
+ public void remove() {
+ if (hasNext()) {
+ current.remove();
+ }
+ throw new NoSuchElementException();
+ }
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/LRUHashMap.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/LRUHashMap.java
new file mode 100644
index 0000000..17f9354
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/LRUHashMap.java
@@ -0,0 +1,38 @@
+/**
+ * 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 net.onrc.onos.of.ctl.util;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public class LRUHashMap<K, V> extends LinkedHashMap<K, V> {
+
+ private static final long serialVersionUID = 1L;
+
+ private final int capacity;
+
+ public LRUHashMap(int capacity) {
+ super(capacity + 1, 0.75f, true);
+ this.capacity = capacity;
+ }
+
+ protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
+ return size() > capacity;
+ }
+
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/LinkedHashSetWrapper.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/LinkedHashSetWrapper.java
new file mode 100644
index 0000000..629e536
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/LinkedHashSetWrapper.java
@@ -0,0 +1,32 @@
+package net.onrc.onos.of.ctl.util;
+
+import java.util.Collection;
+import java.util.LinkedHashSet;
+
+import com.google.common.collect.ForwardingCollection;
+
+/**
+ * A simple wrapper / forwarder that forwards all calls to a LinkedHashSet.
+ * This wrappers sole reason for existence is to implement the
+ * OrderedCollection marker interface.
+ *
+ */
+public class LinkedHashSetWrapper<E>
+ extends ForwardingCollection<E> implements OrderedCollection<E> {
+ private final Collection<E> delegate;
+
+ public LinkedHashSetWrapper() {
+ super();
+ this.delegate = new LinkedHashSet<E>();
+ }
+
+ public LinkedHashSetWrapper(Collection<? extends E> c) {
+ super();
+ this.delegate = new LinkedHashSet<E>(c);
+ }
+
+ @Override
+ protected Collection<E> delegate() {
+ return this.delegate;
+ }
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/MultiIterator.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/MultiIterator.java
new file mode 100644
index 0000000..693a8bf
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/MultiIterator.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright 2012 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 net.onrc.onos.of.ctl.util;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * Iterator over all values in an iterator of iterators.
+ *
+ * @param <T> the type of elements returned by this iterator
+ */
+public class MultiIterator<T> implements Iterator<T> {
+ Iterator<Iterator<T>> subIterator;
+ Iterator<T> current = null;
+
+ public MultiIterator(Iterator<Iterator<T>> subIterator) {
+ super();
+ this.subIterator = subIterator;
+ }
+
+ @Override
+ public boolean hasNext() {
+ if (current == null) {
+ if (subIterator.hasNext()) {
+ current = subIterator.next();
+ } else {
+ return false;
+ }
+ }
+ while (!current.hasNext() && subIterator.hasNext()) {
+ current = subIterator.next();
+ }
+
+ return current.hasNext();
+ }
+
+ @Override
+ public T next() {
+ if (hasNext()) {
+ return current.next();
+ }
+ throw new NoSuchElementException();
+ }
+
+ @Override
+ public void remove() {
+ if (hasNext()) {
+ current.remove();
+ }
+ throw new NoSuchElementException();
+ }
+}
diff --git a/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/OrderedCollection.java b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/OrderedCollection.java
new file mode 100644
index 0000000..f032212
--- /dev/null
+++ b/of-save/ctl/src/main/java/net/onrc/onos/of/ctl/util/OrderedCollection.java
@@ -0,0 +1,14 @@
+package net.onrc.onos.of.ctl.util;
+
+import java.util.Collection;
+
+/**
+ * A marker interface indicating that this Collection defines a particular
+ * iteration order. The details about the iteration order are specified by
+ * the concrete implementation.
+ *
+ * @param <E>
+ */
+public interface OrderedCollection<E> extends Collection<E> {
+
+}
diff --git a/of-save/ctl/src/test/java/net/onrc/onos/of/ctl/internal/ControllerTest.java b/of-save/ctl/src/test/java/net/onrc/onos/of/ctl/internal/ControllerTest.java
new file mode 100644
index 0000000..ea7d884
--- /dev/null
+++ b/of-save/ctl/src/test/java/net/onrc/onos/of/ctl/internal/ControllerTest.java
@@ -0,0 +1,167 @@
+/**
+ * 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 net.onrc.onos.of.ctl.internal;
+
+import junit.framework.TestCase;
+import net.onrc.onos.of.ctl.IOFSwitch;
+
+import org.easymock.EasyMock;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+
+public class ControllerTest extends TestCase {
+
+ private Controller controller;
+ private IOFSwitch sw;
+ private OFChannelHandler h;
+
+ @Override
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ sw = EasyMock.createMock(IOFSwitch.class);
+ h = EasyMock.createMock(OFChannelHandler.class);
+ controller = new Controller();
+ ControllerRunThread t = new ControllerRunThread();
+ t.start();
+ /*
+ * Making sure the thread is properly started before making calls
+ * to controller class.
+ */
+ Thread.sleep(200);
+ }
+
+ /**
+ * Starts the base mocks used in these tests.
+ */
+ private void startMocks() {
+ EasyMock.replay(sw, h);
+ }
+
+ /**
+ * Reset the mocks to a known state.
+ * Automatically called after tests.
+ */
+ @After
+ private void resetMocks() {
+ EasyMock.reset(sw);
+ }
+
+ /**
+ * Fetches the controller instance.
+ * @return the controller
+ */
+ public Controller getController() {
+ return controller;
+ }
+
+ /**
+ * Run the controller's main loop so that updates are processed.
+ */
+ protected class ControllerRunThread extends Thread {
+ @Override
+ public void run() {
+ controller.openFlowPort = 0; // Don't listen
+ controller.activate();
+ }
+ }
+
+ /**
+ * Verify that we are able to add a switch that just connected.
+ * If it already exists then this should fail
+ *
+ * @throws Exception error
+ */
+ @Test
+ public void testAddConnectedSwitches() throws Exception {
+ startMocks();
+ assertTrue(controller.addConnectedSwitch(0, h));
+ assertFalse(controller.addConnectedSwitch(0, h));
+ }
+
+ /**
+ * Add active master but cannot re-add active master.
+ * @throws Exception an error occurred.
+ */
+ @Test
+ public void testAddActivatedMasterSwitch() throws Exception {
+ startMocks();
+ controller.addConnectedSwitch(0, h);
+ assertTrue(controller.addActivatedMasterSwitch(0, sw));
+ assertFalse(controller.addActivatedMasterSwitch(0, sw));
+ }
+
+ /**
+ * Tests that an activated switch can be added but cannot be re-added.
+ *
+ * @throws Exception an error occurred
+ */
+ @Test
+ public void testAddActivatedEqualSwitch() throws Exception {
+ startMocks();
+ controller.addConnectedSwitch(0, h);
+ assertTrue(controller.addActivatedEqualSwitch(0, sw));
+ assertFalse(controller.addActivatedEqualSwitch(0, sw));
+ }
+
+ /**
+ * Move an equal switch to master.
+ * @throws Exception an error occurred
+ */
+ @Test
+ public void testTranstitionToMaster() throws Exception {
+ startMocks();
+ controller.addConnectedSwitch(0, h);
+ controller.addActivatedEqualSwitch(0, sw);
+ controller.transitionToMasterSwitch(0);
+ assertNotNull(controller.getMasterSwitch(0));
+ }
+
+ /**
+ * Transition a master switch to equal state.
+ * @throws Exception an error occurred
+ */
+ @Test
+ public void testTranstitionToEqual() throws Exception {
+ startMocks();
+ controller.addConnectedSwitch(0, h);
+ controller.addActivatedMasterSwitch(0, sw);
+ controller.transitionToEqualSwitch(0);
+ assertNotNull(controller.getEqualSwitch(0));
+ }
+
+ /**
+ * Remove the switch from the controller instance.
+ * @throws Exception an error occurred
+ */
+ @Test
+ public void testRemoveSwitch() throws Exception {
+ sw.cancelAllStatisticsReplies();
+ EasyMock.expectLastCall().once();
+ sw.setConnected(false);
+ EasyMock.expectLastCall().once();
+ startMocks();
+ controller.addConnectedSwitch(0, h);
+ controller.addActivatedMasterSwitch(0, sw);
+ controller.removeConnectedSwitch(0);
+ assertNull(controller.getSwitch(0));
+ EasyMock.verify(sw, h);
+ }
+}
diff --git a/of-save/ctl/src/test/java/net/onrc/onos/of/ctl/internal/OFChannelHandlerTest.java b/of-save/ctl/src/test/java/net/onrc/onos/of/ctl/internal/OFChannelHandlerTest.java
new file mode 100644
index 0000000..0213cce
--- /dev/null
+++ b/of-save/ctl/src/test/java/net/onrc/onos/of/ctl/internal/OFChannelHandlerTest.java
@@ -0,0 +1,1569 @@
+package net.onrc.onos.of.ctl.internal;
+
+import static org.easymock.EasyMock.capture;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.reset;
+import static org.easymock.EasyMock.verify;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import net.onrc.onos.of.ctl.IOFSwitch;
+import net.onrc.onos.of.ctl.Role;
+import net.onrc.onos.of.ctl.debugcounter.DebugCounter;
+import net.onrc.onos.of.ctl.debugcounter.IDebugCounterService;
+import net.onrc.onos.of.ctl.internal.OFChannelHandler.RoleRecvStatus;
+
+import org.easymock.Capture;
+import org.easymock.CaptureType;
+import org.jboss.netty.channel.Channel;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.ChannelPipeline;
+import org.jboss.netty.channel.ChannelStateEvent;
+import org.jboss.netty.channel.ExceptionEvent;
+import org.jboss.netty.channel.MessageEvent;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+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.OFGetConfigReply;
+import org.projectfloodlight.openflow.protocol.OFHelloElem;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFNiciraControllerRole;
+import org.projectfloodlight.openflow.protocol.OFPacketIn;
+import org.projectfloodlight.openflow.protocol.OFPacketInReason;
+import org.projectfloodlight.openflow.protocol.OFPortDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFSetConfig;
+import org.projectfloodlight.openflow.protocol.OFStatsReply;
+import org.projectfloodlight.openflow.protocol.OFStatsRequest;
+import org.projectfloodlight.openflow.protocol.OFStatsType;
+import org.projectfloodlight.openflow.protocol.OFType;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.projectfloodlight.openflow.types.DatapathId;
+import org.projectfloodlight.openflow.types.U32;
+
+/**
+ * Channel handler deals with the switch connection and dispatches
+ * switch messages to the appropriate locations. These Unit Testing cases
+ * test the channeler state machine and role changer. In the first release,
+ * we will focus on OF version 1.0. we will add the testing case for
+ * version 1.3 later.
+ */
+public class OFChannelHandlerTest {
+ private Controller controller;
+ private IDebugCounterService debugCounterService;
+ private OFChannelHandler handler;
+ private Channel channel;
+ private ChannelHandlerContext ctx;
+ private MessageEvent messageEvent;
+ private ChannelStateEvent channelStateEvent;
+ private ChannelPipeline pipeline;
+ private Capture<ExceptionEvent> exceptionEventCapture;
+ private Capture<List<OFMessage>> writeCapture;
+ private OFFeaturesReply featuresReply;
+ private Set<Integer> seenXids = null;
+ private IOFSwitch swImplBase;
+ private OFVersion ofVersion = OFVersion.OF_10;
+ private OFFactory factory13;
+ private OFFactory factory10;
+ private OFFactory factory;
+
+ @Before
+ public void setUp() throws Exception {
+ controller = createMock(Controller.class);
+ ctx = createMock(ChannelHandlerContext.class);
+ channelStateEvent = createMock(ChannelStateEvent.class);
+ channel = createMock(Channel.class);
+ messageEvent = createMock(MessageEvent.class);
+ exceptionEventCapture = new Capture<ExceptionEvent>(CaptureType.ALL);
+ pipeline = createMock(ChannelPipeline.class);
+ writeCapture = new Capture<List<OFMessage>>(CaptureType.ALL);
+ swImplBase = createMock(IOFSwitch.class);
+ seenXids = null;
+ factory13 = OFFactories.getFactory(OFVersion.OF_13);
+ factory10 = OFFactories.getFactory(OFVersion.OF_10);
+ factory = (ofVersion == OFVersion.OF_13) ? factory13 : factory10;
+
+ // TODO: should mock IDebugCounterService and make sure
+ // the expected counters are updated.
+ debugCounterService = new DebugCounter();
+ Controller.Counters counters =
+ new Controller.Counters();
+ counters.createCounters(debugCounterService);
+ expect(controller.getCounters()).andReturn(counters).anyTimes();
+ expect(controller.getOFMessageFactory10()).andReturn(factory10)
+ .anyTimes();
+ expect(controller.getOFMessageFactory13()).andReturn(factory13)
+ .anyTimes();
+ expect(controller.addConnectedSwitch(2000, handler)).andReturn(true)
+ .anyTimes();
+ replay(controller);
+ handler = new OFChannelHandler(controller);
+ verify(controller);
+ reset(controller);
+
+ resetChannel();
+
+ // replay controller. Reset it if you need more specific behavior
+ replay(controller);
+
+ // replay switch. Reset it if you need more specific behavior
+ replay(swImplBase);
+
+ // Mock ctx and channelStateEvent
+ expect(ctx.getChannel()).andReturn(channel).anyTimes();
+ expect(channelStateEvent.getChannel()).andReturn(channel).anyTimes();
+ replay(ctx, channelStateEvent);
+
+ /* Setup an exception event capture on the channel. Right now
+ * we only expect exception events to be send up the channel.
+ * However, it's easy to extend to other events if we need it
+ */
+ pipeline.sendUpstream(capture(exceptionEventCapture));
+ expectLastCall().anyTimes();
+ replay(pipeline);
+ featuresReply = (OFFeaturesReply) buildOFMessage(OFType.FEATURES_REPLY);
+ }
+
+ @After
+ public void tearDown() {
+ /* ensure no exception was thrown */
+ if (exceptionEventCapture.hasCaptured()) {
+ Throwable ex = exceptionEventCapture.getValue().getCause();
+ throw new AssertionError("Unexpected exception: " +
+ ex.getClass().getName() + "(" + ex + ")");
+ }
+ assertFalse("Unexpected messages have been captured",
+ writeCapture.hasCaptured());
+ // verify all mocks.
+ verify(channel);
+ verify(messageEvent);
+ verify(controller);
+ verify(ctx);
+ verify(channelStateEvent);
+ verify(pipeline);
+ verify(swImplBase);
+
+ }
+
+ /**
+ * Reset the channel mock and set basic method call expectations.
+ *
+ **/
+ void resetChannel() {
+ reset(channel);
+ expect(channel.getPipeline()).andReturn(pipeline).anyTimes();
+ expect(channel.getRemoteAddress()).andReturn(null).anyTimes();
+ }
+
+ /**
+ * reset, setup, and replay the messageEvent mock for the given
+ * messages.
+ */
+ void setupMessageEvent(List<OFMessage> messages) {
+ reset(messageEvent);
+ expect(messageEvent.getMessage()).andReturn(messages).atLeastOnce();
+ replay(messageEvent);
+ }
+
+ /**
+ * reset, setup, and replay the messageEvent mock for the given
+ * messages, mock controller send message to channel handler.
+ *
+ * This method will reset, start replay on controller, and then verify
+ */
+ void sendMessageToHandlerWithControllerReset(List<OFMessage> messages)
+ throws Exception {
+ verify(controller);
+ reset(controller);
+
+ sendMessageToHandlerNoControllerReset(messages);
+ }
+
+ /**
+ * reset, setup, and replay the messageEvent mock for the given
+ * messages, mock controller send message to channel handler.
+ *
+ * This method will start replay on controller, and then verify
+ */
+ void sendMessageToHandlerNoControllerReset(List<OFMessage> messages)
+ throws Exception {
+ setupMessageEvent(messages);
+
+ expect(controller.addConnectedSwitch(1000, handler))
+ .andReturn(true).anyTimes();
+ replay(controller);
+
+ handler.messageReceived(ctx, messageEvent);
+ verify(controller);
+ }
+
+ /**
+ * Extract the list of OFMessages that was captured by the Channel.write()
+ * capture. Will check that something was actually captured first. We'll
+ * collapse the messages from multiple writes into a single list of
+ * OFMessages.
+ * Resets the channelWriteCapture.
+ */
+ List<OFMessage> getMessagesFromCapture() {
+ List<OFMessage> msgs = new ArrayList<OFMessage>();
+
+ assertTrue("No write on channel was captured",
+ writeCapture.hasCaptured());
+ List<List<OFMessage>> capturedVals = writeCapture.getValues();
+
+ for (List<OFMessage> oneWriteList: capturedVals) {
+ msgs.addAll(oneWriteList);
+ }
+ writeCapture.reset();
+ return msgs;
+ }
+
+
+ /**
+ * Verify that the given exception event capture (as returned by
+ * getAndInitExceptionCapture) has thrown an exception of the given
+ * expectedExceptionClass.
+ * Resets the capture
+ */
+ void verifyExceptionCaptured(
+ Class<? extends Throwable> expectedExceptionClass) {
+ assertTrue("Excpected exception not thrown",
+ exceptionEventCapture.hasCaptured());
+ Throwable caughtEx = exceptionEventCapture.getValue().getCause();
+ assertEquals(expectedExceptionClass, caughtEx.getClass());
+ exceptionEventCapture.reset();
+ }
+
+ /**
+ * Make sure that the transaction ids in the given messages are
+ * not 0 and differ between each other.
+ * While it's not a defect per se if the xids are we want to ensure
+ * we use different ones for each message we send.
+ */
+ void verifyUniqueXids(List<OFMessage> msgs) {
+ if (seenXids == null) {
+ seenXids = new HashSet<Integer>();
+ }
+ for (OFMessage m: msgs) {
+ int xid = (int) m.getXid();
+ assertTrue("Xid in messags is 0", xid != 0);
+ assertFalse("Xid " + xid + " has already been used",
+ seenXids.contains(xid));
+ seenXids.add(xid);
+ }
+ }
+
+
+
+ public void testInitState() throws Exception {
+ OFMessage m = buildOFMessage(OFType.HELLO);
+
+ expect(messageEvent.getMessage()).andReturn(null);
+ replay(channel, messageEvent);
+
+ // We don't expect to receive /any/ messages in init state since
+ // channelConnected moves us to a different state
+ sendMessageToHandlerWithControllerReset(Collections.singletonList(m));
+
+ verifyExceptionCaptured(SwitchStateException.class);
+ assertEquals(OFChannelHandler.ChannelState.INIT,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * move the channel from scratch to WAIT_HELLO state.
+ *
+ */
+ @Test
+ public void moveToWaitHello() throws Exception {
+ resetChannel();
+ channel.write(capture(writeCapture));
+ expectLastCall().andReturn(null).once();
+ replay(channel);
+ // replay unused mocks
+ replay(messageEvent);
+
+ handler.channelConnected(ctx, channelStateEvent);
+
+ List<OFMessage> msgs = getMessagesFromCapture();
+ assertEquals(1, msgs.size());
+ assertEquals(OFType.HELLO, msgs.get(0).getType());
+ assertEquals(OFChannelHandler.ChannelState.WAIT_HELLO,
+ handler.getStateForTesting());
+ //Should verify that the Hello received from the controller
+ //is ALWAYS OF1.3 hello regardless of the switch version
+ assertEquals(OFVersion.OF_13, msgs.get(0).getVersion());
+ verifyUniqueXids(msgs);
+ }
+
+
+ /**
+ * Move the channel from scratch to WAIT_FEATURES_REPLY state.
+ * Builds on moveToWaitHello().
+ * adds testing for WAIT_HELLO state.
+ */
+ @Test
+ public void moveToWaitFeaturesReply() throws Exception {
+ moveToWaitHello();
+ resetChannel();
+ channel.write(capture(writeCapture));
+ expectLastCall().andReturn(null).atLeastOnce();
+ replay(channel);
+
+ OFMessage hello = buildOFMessage(OFType.HELLO);
+ sendMessageToHandlerWithControllerReset(Collections.singletonList(hello));
+
+ List<OFMessage> msgs = getMessagesFromCapture();
+ assertEquals(1, msgs.size());
+ assertEquals(OFType.FEATURES_REQUEST, msgs.get(0).getType());
+ if (ofVersion == OFVersion.OF_10) {
+ assertEquals(OFVersion.OF_10, msgs.get(0).getVersion());
+ }
+ verifyUniqueXids(msgs);
+
+ assertEquals(OFChannelHandler.ChannelState.WAIT_FEATURES_REPLY,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel from scratch to WAIT_CONFIG_REPLY state.
+ * Builds on moveToWaitFeaturesReply.
+ * adds testing for WAIT_FEATURES_REPLY state.
+ */
+ @Test
+ public void moveToWaitConfigReply() throws Exception {
+ moveToWaitFeaturesReply();
+
+ resetChannel();
+ channel.write(capture(writeCapture));
+ expectLastCall().andReturn(null).atLeastOnce();
+ replay(channel);
+
+ sendMessageToHandlerWithControllerReset(Collections.<OFMessage>singletonList(featuresReply));
+ List<OFMessage> msgs = getMessagesFromCapture();
+ assertEquals(3, msgs.size());
+ assertEquals(OFType.SET_CONFIG, msgs.get(0).getType());
+ OFSetConfig sc = (OFSetConfig) msgs.get(0);
+ assertEquals((short) 0xffff, sc.getMissSendLen());
+ assertEquals(OFType.BARRIER_REQUEST, msgs.get(1).getType());
+ assertEquals(OFType.GET_CONFIG_REQUEST, msgs.get(2).getType());
+ verifyUniqueXids(msgs);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_CONFIG_REPLY,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel from scratch to WAIT_DESCRIPTION_STAT_REPLY state.
+ * Builds on moveToWaitConfigReply().
+ * adds testing for WAIT_CONFIG_REPLY state.
+ */
+ @Test
+ public void moveToWaitDescriptionStatReply() throws Exception {
+ moveToWaitConfigReply();
+ resetChannel();
+ channel.write(capture(writeCapture));
+ expectLastCall().andReturn(null).atLeastOnce();
+ replay(channel);
+
+ OFGetConfigReply cr = (OFGetConfigReply) buildOFMessage(OFType.GET_CONFIG_REPLY);
+
+ sendMessageToHandlerWithControllerReset(Collections.<OFMessage>singletonList(cr));
+
+ List<OFMessage> msgs = getMessagesFromCapture();
+ assertEquals(1, msgs.size());
+ assertEquals(OFType.STATS_REQUEST, msgs.get(0).getType());
+ OFStatsRequest<?> sr = (OFStatsRequest<?>) msgs.get(0);
+ assertEquals(OFStatsType.DESC, sr.getStatsType());
+ verifyUniqueXids(msgs);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_DESCRIPTION_STAT_REPLY,
+ handler.getStateForTesting());
+ }
+
+
+ private OFStatsReply createDescriptionStatsReply() throws IOException {
+ OFStatsReply sr = (OFStatsReply) buildOFMessage(OFType.STATS_REPLY);
+ return sr;
+ }
+
+ /**
+ * Move the channel from scratch to WAIT_INITIAL_ROLE state.
+ * for a switch that does not have a sub-handshake.
+ * Builds on moveToWaitDescriptionStatReply().
+ * adds testing for WAIT_DESCRIPTION_STAT_REPLY state.
+ *
+ */
+ @Test
+ public void moveToWaitInitialRole()
+ throws Exception {
+ moveToWaitDescriptionStatReply();
+
+ long xid = 2000;
+
+ // build the stats reply
+ OFStatsReply sr = createDescriptionStatsReply();
+
+ resetChannel();
+ replay(channel);
+
+ setupMessageEvent(Collections.<OFMessage>singletonList(sr));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+ controller.submitRegistryRequest(1000);
+ expectLastCall().once();
+ replay(controller);
+
+ //TODO: With the description stats message you are sending in the test,
+ //you will end up with an OFSwitchImplBase object
+ //which by default does NOT support the nicira role messages.
+ //If you wish to test the case where Nicira role messages are supported,
+ //then make a comment here that states that this is different
+ //from the default behavior of switchImplbase /or/
+ //send the right desc-stats (for example send what is expected from OVS 1.0)
+
+ if (ofVersion == OFVersion.OF_10) {
+ expect(swImplBase.getAttribute(IOFSwitch.SWITCH_SUPPORTS_NX_ROLE))
+ .andReturn(true).once();
+
+ swImplBase.write(capture(writeCapture));
+ expectLastCall().anyTimes();
+ }
+
+ swImplBase.setOFVersion(ofVersion);
+ expectLastCall().once();
+ swImplBase.setConnected(true);
+ expectLastCall().once();
+ swImplBase.setChannel(channel);
+ expectLastCall().once();
+ swImplBase.setDebugCounterService(controller.getDebugCounter());
+ expectLastCall().once();
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ swImplBase.setRole(Role.EQUAL);
+ expectLastCall().once();
+
+ expect(swImplBase.getNextTransactionId())
+ .andReturn((int) xid).anyTimes();
+ expect(swImplBase.getId())
+ .andReturn(1000L).once();
+
+ swImplBase.setFeaturesReply(featuresReply);
+ expectLastCall().once();
+ swImplBase.setPortDescReply((OFPortDescStatsReply) null);
+ replay(swImplBase);
+
+ // send the description stats reply
+ handler.messageReceived(ctx, messageEvent);
+
+ List<OFMessage> msgs = getMessagesFromCapture();
+ assertEquals(1, msgs.size());
+ assertEquals(OFType.EXPERIMENTER, msgs.get(0).getType());
+ verifyNiciraMessage((OFExperimenter) msgs.get(0));
+
+ verify(controller);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel from scratch to.
+ * WAIT_SWITCH_DRIVER_SUB_HANDSHAKE state.
+ * Builds on moveToWaitInitialRole().
+ */
+ @Test
+ public void moveToWaitSubHandshake()
+ throws Exception {
+ moveToWaitInitialRole();
+
+ int xid = 2000;
+ resetChannel();
+ replay(channel);
+
+ reset(swImplBase);
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(true, xid, Role.SLAVE);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ // build the stats reply
+ OFStatsReply sr = createDescriptionStatsReply();
+ OFMessage rr = getRoleReply(xid, Role.SLAVE);
+ setupMessageEvent(Collections.<OFMessage>singletonList(rr));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+
+ replay(controller);
+
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ swImplBase.setRole(Role.SLAVE);
+ expectLastCall().once();
+ expect(swImplBase.getNextTransactionId())
+ .andReturn(xid).anyTimes();
+ swImplBase.startDriverHandshake();
+ expectLastCall().once();
+
+ //when this flag is false, state machine will move to
+ //WAIT_SWITCH_DRIVER_SUB_HANDSHAKE state
+ expect(swImplBase.isDriverHandshakeComplete())
+ .andReturn(false).once();
+
+ replay(swImplBase);
+
+ // send the description stats reply
+ handler.messageReceived(ctx, messageEvent);
+
+ assertEquals(OFChannelHandler.ChannelState.WAIT_SWITCH_DRIVER_SUB_HANDSHAKE,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel from scratch to WAIT_INITIAL_ROLE state,
+ * then move the channel to EQUAL state based on the switch Role.
+ * This test basically test the switch with role support.
+ * Builds on moveToWaitInitialRole().
+ *
+ * In WAIT_INITIAL_ROLE state, when any messages (except ECHO_REQUEST
+ * and PORT_STATUS), state machine will transit to MASTER or
+ * EQUAL state based on the switch role.
+ */
+ @Test
+ public void moveToSlaveWithHandshakeComplete()
+ throws Exception {
+
+ moveToWaitInitialRole();
+
+ int xid = 2000;
+ resetChannel();
+ replay(channel);
+
+ reset(swImplBase);
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(true, xid, Role.SLAVE);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ // build the stats reply
+ OFStatsReply sr = createDescriptionStatsReply();
+ OFMessage rr = getRoleReply(xid, Role.SLAVE);
+ setupMessageEvent(Collections.<OFMessage>singletonList(rr));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+
+ expect(controller.addActivatedEqualSwitch(1000, swImplBase))
+ .andReturn(true).once();
+ replay(controller);
+
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ //consult the role in sw to determine the next state.
+ //in this testing case, we are testing that channel handler
+ // will move to EQUAL state when switch role is in SLAVE.
+ expect(swImplBase.getRole()).andReturn(Role.SLAVE).once();
+ swImplBase.setRole(Role.SLAVE);
+ expectLastCall().once();
+
+ expect(swImplBase.getNextTransactionId())
+ .andReturn(xid).anyTimes();
+ expect(swImplBase.getId())
+ .andReturn(1000L).once();
+ swImplBase.startDriverHandshake();
+ expectLastCall().once();
+
+ //when this flag is true, don't need to move interim state
+ //WAIT_SWITCH_DRIVER_SUB_HANDSHAKE. channel handler will
+ //move to corresponding state after consulting the role in sw
+ //This is essentially the same test as the one above,
+ //except for this line
+ expect(swImplBase.isDriverHandshakeComplete())
+ .andReturn(true).once();
+
+ replay(swImplBase);
+
+ // send the description stats reply
+ handler.messageReceived(ctx, messageEvent);
+
+ assertEquals(OFChannelHandler.ChannelState.EQUAL,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel from scratch to WAIT_INITIAL_ROLE state,
+ * then to MASTERL state based on the switch Role.
+ * This test basically test the switch with role support.
+ * Builds on moveToWaitInitialRole().
+ *
+ * In WAIT_INITIAL_ROLE state, when any messages (except ECHO_REQUEST
+ * and PORT_STATUS), state machine will transit to MASTER or
+ * EQUAL state based on the switch role.
+ */
+ @Test
+ public void moveToMasterWithHandshakeComplete()
+ throws Exception {
+
+ moveToWaitInitialRole();
+
+ int xid = 2000;
+ resetChannel();
+ replay(channel);
+
+ reset(swImplBase);
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(true, xid, Role.MASTER);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ // build the stats reply
+ OFStatsReply sr = createDescriptionStatsReply();
+ OFMessage rr = getRoleReply(xid, Role.MASTER);
+ setupMessageEvent(Collections.<OFMessage>singletonList(rr));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+
+ expect(controller.addActivatedMasterSwitch(1000, swImplBase))
+ .andReturn(true).once();
+ replay(controller);
+
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ expect(swImplBase.getRole()).andReturn(Role.MASTER).once();
+ swImplBase.setRole(Role.MASTER);
+ expectLastCall().once();
+
+ expect(swImplBase.getNextTransactionId())
+ .andReturn(xid).anyTimes();
+ expect(swImplBase.getId())
+ .andReturn(1000L).once();
+ swImplBase.startDriverHandshake();
+ expectLastCall().once();
+ expect(swImplBase.isDriverHandshakeComplete())
+ .andReturn(true).once();
+
+ replay(swImplBase);
+
+
+ // send the description stats reply
+ handler.messageReceived(ctx, messageEvent);
+
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel from scratch to
+ * WAIT_SWITCH_DRIVER_SUB_HANDSHAKE state.
+ * Builds on moveToWaitSubHandshake().
+ */
+ @Test
+ public void moveToEqualViaWaitSubHandshake()
+ throws Exception {
+ moveToWaitSubHandshake();
+
+ long xid = 2000;
+ resetChannel();
+ replay(channel);
+
+ // build the stats reply
+ OFStatsReply sr = createDescriptionStatsReply();
+
+ setupMessageEvent(Collections.<OFMessage>singletonList(sr));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+
+ expect(controller.addActivatedEqualSwitch(1000, swImplBase))
+ .andReturn(true).once();
+ replay(controller);
+
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ expect(swImplBase.getRole()).andReturn(Role.SLAVE).once();
+ expect(swImplBase.getNextTransactionId())
+ .andReturn((int) xid).anyTimes();
+ expect(swImplBase.getId())
+ .andReturn(1000L).once();
+
+ swImplBase.processDriverHandshakeMessage(sr);
+ expectLastCall().once();
+ expect(swImplBase.isDriverHandshakeComplete())
+ .andReturn(true).once();
+
+ replay(swImplBase);
+
+ // send the description stats reply
+ handler.messageReceived(ctx, messageEvent);
+
+ assertEquals(OFChannelHandler.ChannelState.EQUAL,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel from scratch to
+ * WAIT_SWITCH_DRIVER_SUB_HANDSHAKE state.
+ * Builds on moveToWaitSubHandshake().
+ */
+ @Test
+ public void moveToMasterViaWaitSubHandshake()
+ throws Exception {
+ moveToWaitSubHandshake();
+
+ long xid = 2000;
+ resetChannel();
+ replay(channel);
+
+ // In this state, any messages except echo request, port status and
+ // error go to the switch sub driver handshake. Once the switch reports
+ // that its sub driver handshake is complete (#isDriverHandshakeComplete
+ // return true) then the channel handle consults the switch role and
+ // moves the state machine to the appropriate state (MASTER or EQUALS).
+ // In this test we expect the state machine to end up in MASTER state.
+ OFStatsReply sr = createDescriptionStatsReply();
+
+ setupMessageEvent(Collections.<OFMessage>singletonList(sr));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+ expect(controller.addActivatedMasterSwitch(1000, swImplBase))
+ .andReturn(true).once();
+ replay(controller);
+
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ expect(swImplBase.getRole()).andReturn(Role.MASTER).once();
+ expect(swImplBase.getNextTransactionId())
+ .andReturn((int) xid).anyTimes();
+ expect(swImplBase.getId())
+ .andReturn(1000L).once();
+
+ swImplBase.processDriverHandshakeMessage(sr);
+ expectLastCall().once();
+ expect(swImplBase.isDriverHandshakeComplete())
+ .andReturn(true).once();
+
+ replay(swImplBase);
+
+ // send the description stats reply
+ handler.messageReceived(ctx, messageEvent);
+ verify(controller);
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Test the behavior in WAIT_SWITCH_DRIVER_SUB_HANDSHAKE state.
+ * ECHO_REQUEST message received case.
+ */
+ @Test
+ public void testWaitSwitchDriverSubhandshake() throws Exception {
+ moveToWaitSubHandshake();
+
+ long xid = 2000;
+ resetChannel();
+ channel.write(capture(writeCapture));
+ expectLastCall().andReturn(null).atLeastOnce();
+ replay(channel);
+
+ OFMessage er = buildOFMessage(OFType.ECHO_REQUEST);
+
+ setupMessageEvent(Collections.<OFMessage>singletonList(er));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFMessageFactory10()).andReturn(factory10);
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+
+ replay(controller);
+
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ expect(swImplBase.getNextTransactionId())
+ .andReturn((int) xid).anyTimes();
+
+ replay(swImplBase);
+
+ handler.messageReceived(ctx, messageEvent);
+
+ List<OFMessage> msgs = getMessagesFromCapture();
+ assertEquals(1, msgs.size());
+ assertEquals(OFType.ECHO_REPLY, msgs.get(0).getType());
+ verifyUniqueXids(msgs);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_SWITCH_DRIVER_SUB_HANDSHAKE,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Helper.
+ * Verify that the given OFMessage is a correct Nicira RoleRequest message.
+ */
+ private void verifyNiciraMessage(OFExperimenter ofMessage) {
+
+ int vendor = (int) ofMessage.getExperimenter();
+ assertEquals(vendor, 0x2320); // magic number representing nicira
+ }
+
+ /**
+ * Setup the mock switch and write capture for a role request, set the
+ * role and verify mocks.
+ * @param supportsNxRole whether the switch supports role request messages
+ * to setup the attribute. This must be null (don't yet know if roles
+ * supported: send to check) or true.
+ * @param xid The xid to use in the role request
+ * @param role The role to send
+ * @throws IOException
+ */
+ private void setupSwitchSendRoleRequestAndVerify(Boolean supportsNxRole,
+ int xid,
+ Role role) throws IOException {
+
+ RoleRecvStatus expectation = RoleRecvStatus.MATCHED_SET_ROLE;
+
+ expect(swImplBase.getAttribute(IOFSwitch.SWITCH_SUPPORTS_NX_ROLE))
+ .andReturn(supportsNxRole).atLeastOnce();
+
+ if (supportsNxRole != null && supportsNxRole) {
+ expect(swImplBase.getNextTransactionId()).andReturn(xid).once();
+ swImplBase.write(capture(writeCapture));
+ expectLastCall().anyTimes();
+ }
+ replay(swImplBase);
+
+ handler.sendRoleRequest(role, expectation);
+
+ if (supportsNxRole != null && supportsNxRole) {
+ List<OFMessage> msgs = getMessagesFromCapture();
+ assertEquals(1, msgs.size());
+ verifyNiciraMessage((OFExperimenter) msgs.get(0));
+ }
+ }
+
+ /**
+ * Setup the mock switch for a role change request where the switch
+ * does not support roles.
+ *
+ * Needs to verify and reset the controller since we need to set
+ * an expectation
+ */
+ private void setupSwitchRoleChangeUnsupported(int xid,
+ Role role) {
+ boolean supportsNxRole = false;
+ RoleRecvStatus expectation = RoleRecvStatus.NO_REPLY;
+ reset(swImplBase);
+ expect(swImplBase.getAttribute(IOFSwitch.SWITCH_SUPPORTS_NX_ROLE))
+ .andReturn(supportsNxRole).atLeastOnce();
+ // TODO: hmmm. While it's not incorrect that we set the attribute
+ // again it looks odd. Maybe change
+ swImplBase.setAttribute(IOFSwitch.SWITCH_SUPPORTS_NX_ROLE, supportsNxRole);
+ expectLastCall().anyTimes();
+
+ replay(swImplBase);
+
+ handler.sendRoleRequest(role, expectation);
+
+ verify(swImplBase);
+ }
+
+ /*
+ * Return a Nicira RoleReply message for the given role.
+ */
+ private OFMessage getRoleReply(long xid, Role role) {
+
+ OFNiciraControllerRole nr = null;
+
+ switch(role) {
+ case MASTER:
+ nr = OFNiciraControllerRole.ROLE_MASTER;
+ break;
+ case EQUAL:
+ nr = OFNiciraControllerRole.ROLE_SLAVE;
+ break;
+ case SLAVE:
+ nr = OFNiciraControllerRole.ROLE_SLAVE;
+ break;
+ default: //handled below
+ }
+ OFMessage m = factory10.buildNiciraControllerRoleReply()
+ .setRole(nr)
+ .setXid(xid)
+ .build();
+ return m;
+ }
+
+ /**
+ * Move the channel from scratch to MASTER state.
+ * Builds on moveToWaitInitialRole().
+ * adds testing for WAIT_INITAL_ROLE state.
+ *
+ * This method tests the case that the switch does NOT support roles.
+ * In ONOS if the switch-driver says that nicira-role messages are not
+ * supported, then ONOS does NOT send role-request messages
+ * (see handleUnsentRoleMessage())
+ */
+ @Test
+ public void testInitialMoveToMasterNoRole() throws Exception {
+ int xid = 43;
+ // first, move us to WAIT_INITIAL_ROLE_STATE
+
+ moveToWaitInitialRole();
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ OFStatsReply sr = createDescriptionStatsReply();
+
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+
+ expect(controller.addActivatedMasterSwitch(1000, swImplBase))
+ .andReturn(true).once();
+ replay(controller);
+
+ reset(swImplBase);
+ swImplBase.setRole(Role.MASTER);
+ expectLastCall().once();
+ swImplBase.startDriverHandshake();
+ expectLastCall().once();
+ expect(swImplBase.isDriverHandshakeComplete())
+ .andReturn(true).once();
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ expect(swImplBase.getRole()).andReturn(Role.MASTER).once();
+
+ expect(swImplBase.getId())
+ .andReturn(1000L).once();
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(false, xid, Role.MASTER);
+
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel from scratch to WAIT_INITIAL_ROLE state.
+ * Builds on moveToWaitInitialRole().
+ * adds testing for WAIT_INITAL_ROLE state
+ *
+ * We let the initial role request time out. Role support should be
+ * disabled but the switch should be activated.
+ */
+ /* TBD
+ @Test
+ public void testInitialMoveToMasterTimeout() throws Exception {
+ int timeout = 50;
+ handler.useRoleChangerWithOtherTimeoutForTesting(timeout);
+ int xid = 4343;
+
+ // first, move us to WAIT_INITIAL_ROLE_STATE
+
+ moveToWaitInitialRole();
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ // prepare mocks and inject the role reply message
+ reset(swImplBase);
+ // Set the role
+ swImplBase.setRole(Role.MASTER);
+ expectLastCall().once();
+ swImplBase.startDriverHandshake();
+ expectLastCall().once();
+ expect(swImplBase.isDriverHandshakeComplete())
+ .andReturn(false).once();
+ if (ofVersion == OFVersion.OF_10) {
+ expect(swImplBase.getAttribute(IOFSwitch.SWITCH_SUPPORTS_NX_ROLE))
+ .andReturn(true).once();
+
+ swImplBase.write(capture(writeCapture),
+ EasyMock.<FloodlightContext>anyObject());
+ expectLastCall().anyTimes();
+ }
+ expect(swImplBase.getNextTransactionId()).andReturn(xid).once();
+
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(null, xid, Role.MASTER);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ OFMessage m = buildOFMessage(OFType.ECHO_REPLY);
+
+ setupMessageEvent(Collections.<OFMessage>singletonList(m));
+
+ Thread.sleep(timeout+5);
+
+ verify(controller);
+ reset(controller);
+
+ expect(controller.addActivatedMasterSwitch(1000, swImplBase))
+ .andReturn(true).once();
+ controller.flushAll();
+ expectLastCall().once();
+
+ replay(controller);
+
+ handler.messageReceived(ctx, messageEvent);
+
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+
+ }
+
+ */
+ /**
+ * Move the channel from scratch to SLAVE state.
+ * Builds on doMoveToWaitInitialRole().
+ * adds testing for WAIT_INITAL_ROLE state
+ *
+ * This method tests the case that the switch does NOT support roles.
+ * The channel handler still needs to send the initial request to find
+ * out that whether the switch supports roles.
+ *
+ */
+ @Test
+ public void testInitialMoveToSlaveNoRole() throws Exception {
+ int xid = 44;
+ // first, move us to WAIT_INITIAL_ROLE_STATE
+ moveToWaitInitialRole();
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ reset(swImplBase);
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(false, xid, Role.SLAVE);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ }
+
+ /**
+ * Move the channel from scratch to SLAVE state.
+ * Builds on doMoveToWaitInitialRole().
+ * adds testing for WAIT_INITAL_ROLE state
+ *
+ * We let the initial role request time out. The switch should be
+ * disconnected
+ */
+ /* TBD
+ @Test
+ public void testInitialMoveToSlaveTimeout() throws Exception {
+ int timeout = 50;
+ handler.useRoleChangerWithOtherTimeoutForTesting(timeout);
+ int xid = 4444;
+
+ // first, move us to WAIT_INITIAL_ROLE_STATE
+ moveToWaitInitialRole();
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(null, xid, Role.SLAVE);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ // prepare mocks and inject the role reply message
+ reset(sw);
+ sw.setAttribute(IOFSwitch.SWITCH_SUPPORTS_NX_ROLE, false);
+ expectLastCall().once();
+ sw.setRole(Role.SLAVE);
+ expectLastCall().once();
+ sw.disconnectSwitch(); // Make sure we disconnect
+ expectLastCall().once();
+ replay(sw);
+
+ OFMessage m = buildOFMessage(OFType.ECHO_REPLY);
+
+ Thread.sleep(timeout+5);
+
+ sendMessageToHandlerWithControllerReset(Collections.singletonList(m));
+ }
+
+ */
+ /**
+ * Move channel from scratch to WAIT_INITIAL_STATE, then MASTER,
+ * then SLAVE for cases where the switch does not support roles.
+ * I.e., the final SLAVE transition should disconnect the switch.
+ */
+ @Test
+ public void testNoRoleInitialToMasterToSlave() throws Exception {
+ int xid = 46;
+ reset(swImplBase);
+ replay(swImplBase);
+
+ reset(controller);
+ replay(controller);
+
+ // First, lets move the state to MASTER without role support
+ testInitialMoveToMasterNoRole();
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+
+ // try to set master role again. should be a no-op
+ setupSwitchRoleChangeUnsupported(xid, Role.MASTER);
+
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+
+ setupSwitchRoleChangeUnsupported(xid, Role.SLAVE);
+ //switch does not support role message. there is no role set
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+
+ }
+
+ /**
+ * Move the channel to MASTER state.
+ * Expects that the channel is in MASTER or SLAVE state.
+ *
+ */
+ public void changeRoleToMasterWithRequest() throws Exception {
+ int xid = 4242;
+
+ assertTrue("This method can only be called when handler is in " +
+ "MASTER or SLAVE role", handler.isHandshakeComplete());
+
+ reset(swImplBase);
+ reset(controller);
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(true, xid, Role.MASTER);
+
+ // prepare mocks and inject the role reply message
+
+ reset(controller);
+ expect(controller.addActivatedMasterSwitch(1000, swImplBase))
+ .andReturn(true).once();
+ OFMessage reply = getRoleReply(xid, Role.MASTER);
+
+ // sendMessageToHandler will verify and rest controller mock
+
+ OFStatsReply sr = createDescriptionStatsReply();
+ setupMessageEvent(Collections.<OFMessage>singletonList(reply));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+ controller.transitionToMasterSwitch(1000);
+ expectLastCall().once();
+
+ replay(controller);
+
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ expect(swImplBase.getRole()).andReturn(Role.EQUAL).atLeastOnce();
+ expect(swImplBase.getNextTransactionId())
+ .andReturn(xid).anyTimes();
+ expect(swImplBase.getId())
+ .andReturn(1000L).once();
+
+ swImplBase.setRole(Role.MASTER);
+ expectLastCall().once();
+ replay(swImplBase);
+
+ // send the description stats reply
+ handler.messageReceived(ctx, messageEvent);
+
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+ }
+
+ /**
+ * Move the channel to SLAVE state.
+ * Expects that the channel is in MASTER or SLAVE state.
+ *
+ */
+ public void changeRoleToSlaveWithRequest() throws Exception {
+ int xid = 2323;
+
+ assertTrue("This method can only be called when handler is in " +
+ "MASTER or SLAVE role", handler.isHandshakeComplete());
+
+ // Set the role
+ reset(controller);
+ reset(swImplBase);
+
+ swImplBase.write(capture(writeCapture));
+ expectLastCall().anyTimes();
+
+ expect(swImplBase.getNextTransactionId())
+ .andReturn(xid).anyTimes();
+
+
+ if (ofVersion == OFVersion.OF_10) {
+ expect(swImplBase.getAttribute(IOFSwitch.SWITCH_SUPPORTS_NX_ROLE))
+ .andReturn(true).once();
+
+ swImplBase.write(capture(writeCapture));
+ expectLastCall().anyTimes();
+ }
+ replay(swImplBase);
+
+ handler.sendRoleRequest(Role.SLAVE, RoleRecvStatus.MATCHED_SET_ROLE);
+
+ List<OFMessage> msgs = getMessagesFromCapture();
+ assertEquals(1, msgs.size());
+ verifyNiciraMessage((OFExperimenter) msgs.get(0));
+
+
+ OFMessage reply = getRoleReply(xid, Role.SLAVE);
+ OFStatsReply sr = createDescriptionStatsReply();
+ setupMessageEvent(Collections.<OFMessage>singletonList(reply));
+
+ // mock controller
+ reset(controller);
+ reset(swImplBase);
+
+ controller.transitionToEqualSwitch(1000);
+ expectLastCall().once();
+ expect(controller.getOFSwitchInstance((OFDescStatsReply) sr, ofVersion))
+ .andReturn(swImplBase).anyTimes();
+
+ expect(controller.getDebugCounter())
+ .andReturn(debugCounterService).anyTimes();
+
+ replay(controller);
+
+ expect(swImplBase.getStringId())
+ .andReturn(null).anyTimes();
+ expect(swImplBase.getRole()).andReturn(Role.MASTER).atLeastOnce();
+ expect(swImplBase.getNextTransactionId())
+ .andReturn(xid).anyTimes();
+
+ // prepare mocks and inject the role reply message
+ swImplBase.setRole(Role.SLAVE);
+ expectLastCall().once();
+ expect(swImplBase.getId())
+ .andReturn(1000L).once();
+ replay(swImplBase);
+
+ handler.messageReceived(ctx, messageEvent);
+
+ assertEquals(OFChannelHandler.ChannelState.EQUAL,
+ handler.getStateForTesting());
+ }
+
+ @Test
+ public void testMultiRoleChange1() throws Exception {
+ moveToMasterWithHandshakeComplete();
+ changeRoleToMasterWithRequest();
+ changeRoleToSlaveWithRequest();
+ changeRoleToSlaveWithRequest();
+ changeRoleToMasterWithRequest();
+ changeRoleToSlaveWithRequest();
+ }
+
+ @Test
+ public void testMultiRoleChange2() throws Exception {
+ moveToSlaveWithHandshakeComplete();
+ changeRoleToMasterWithRequest();
+ changeRoleToSlaveWithRequest();
+ changeRoleToSlaveWithRequest();
+ changeRoleToMasterWithRequest();
+ changeRoleToSlaveWithRequest();
+ }
+
+ /**
+ * Start from scratch and reply with an unexpected error to the role
+ * change request.
+ * Builds on doMoveToWaitInitialRole()
+ * adds testing for WAIT_INITAL_ROLE state
+ */
+ /* TBD
+ @Test
+ public void testInitialRoleChangeOtherError() throws Exception {
+ int xid = 4343;
+ // first, move us to WAIT_INITIAL_ROLE_STATE
+ moveToWaitInitialRole();
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+ reset(swImplBase);
+ // Set the role
+ setupSwitchSendRoleRequestAndVerify(true, xid, Role.MASTER);
+ assertEquals(OFChannelHandler.ChannelState.WAIT_INITIAL_ROLE,
+ handler.getStateForTesting());
+
+
+ // FIXME: shouldn't use ordinal(), but OFError is broken
+
+ OFMessage err = factory.errorMsgs().buildBadActionErrorMsg()
+ .setCode(OFBadActionCode.BAD_LEN)
+ .setXid(2000)
+ .build();
+ verify(swImplBase);
+ reset(swImplBase);
+ replay(swImplBase);
+ sendMessageToHandlerWithControllerReset(Collections.singletonList(err));
+
+ verifyExceptionCaptured(SwitchStateException.class);
+ }
+ */
+ /**
+ * Test dispatch of messages while in MASTER role.
+ */
+ @Test
+ public void testMessageDispatchMaster() throws Exception {
+
+ moveToMasterWithHandshakeComplete();
+
+ // Send packet in. expect dispatch
+ OFPacketIn pi = (OFPacketIn)
+ buildOFMessage(OFType.PACKET_IN);
+ setupMessageEvent(Collections.<OFMessage>singletonList(pi));
+
+ reset(swImplBase);
+ swImplBase.handleMessage(pi);
+ expectLastCall().once();
+ replay(swImplBase);
+ // send the description stats reply
+ handler.messageReceived(ctx, messageEvent);
+
+ assertEquals(OFChannelHandler.ChannelState.MASTER,
+ handler.getStateForTesting());
+
+ verify(controller);
+ // TODO: many more to go
+ }
+
+ /**
+ * Test port status message handling while MASTER.
+ *
+ */
+ /* Patrick: TBD
+ @Test
+ public void testPortStatusMessageMaster() throws Exception {
+ long dpid = featuresReply.getDatapathId().getLong();
+ testInitialMoveToMasterWithRole();
+ List<OFPortDesc> ports = new ArrayList<OFPortDesc>();
+ // A dummy port.
+ OFPortDesc p = factory.buildPortDesc()
+ .setName("Eth1")
+ .setPortNo(OFPort.ofInt(1))
+ .build();
+ ports.add(p);
+
+ p.setName("Port1");
+ p.setPortNumber((short)1);
+
+ OFPortStatus ps = (OFPortStatus)buildOFMessage(OFType.PORT_STATUS);
+ ps.setDesc(p);
+
+ // The events we expect sw.handlePortStatus to return
+ // We'll just use the same list for all valid OFPortReasons and add
+ // arbitrary events for arbitrary ports that are not necessarily
+ // related to the port status message. Our goal
+ // here is not to return the correct set of events but the make sure
+ // that a) sw.handlePortStatus is called
+ // b) the list of events sw.handlePortStatus returns is sent
+ // as IOFSwitchListener notifications.
+ OrderedCollection<PortChangeEvent> events =
+ new LinkedHashSetWrapper<PortChangeEvent>();
+ ImmutablePort p1 = ImmutablePort.create("eth1", (short)1);
+ ImmutablePort p2 = ImmutablePort.create("eth2", (short)2);
+ ImmutablePort p3 = ImmutablePort.create("eth3", (short)3);
+ ImmutablePort p4 = ImmutablePort.create("eth4", (short)4);
+ ImmutablePort p5 = ImmutablePort.create("eth5", (short)5);
+ events.add(new PortChangeEvent(p1, PortChangeType.ADD));
+ events.add(new PortChangeEvent(p2, PortChangeType.DELETE));
+ events.add(new PortChangeEvent(p3, PortChangeType.UP));
+ events.add(new PortChangeEvent(p4, PortChangeType.DOWN));
+ events.add(new PortChangeEvent(p5, PortChangeType.OTHER_UPDATE));
+
+
+ for (OFPortReason reason: OFPortReason.values()) {
+ ps.setReason(reason.getReasonCode());
+
+ reset(sw);
+ expect(sw.getId()).andReturn(dpid).anyTimes();
+
+ expect(sw.processOFPortStatus(ps)).andReturn(events).once();
+ replay(sw);
+
+ reset(controller);
+ controller.notifyPortChanged(sw, p1, PortChangeType.ADD);
+ controller.notifyPortChanged(sw, p2, PortChangeType.DELETE);
+ controller.notifyPortChanged(sw, p3, PortChangeType.UP);
+ controller.notifyPortChanged(sw, p4, PortChangeType.DOWN);
+ controller.notifyPortChanged(sw, p5, PortChangeType.OTHER_UPDATE);
+ sendMessageToHandlerNoControllerReset(
+ Collections.<OFMessage>singletonList(ps));
+ verify(sw);
+ verify(controller);
+ }
+ }
+
+ */
+ /**
+ * Build an OF message.
+ * @throws IOException
+ */
+ private OFMessage buildOFMessage(OFType t) throws IOException {
+ OFMessage m = null;
+ switch (t) {
+
+ case HELLO:
+ // 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
+ if (ofVersion == OFVersion.OF_13) {
+ U32 bitmap = U32.ofRaw(0x00000012);
+ OFHelloElem hem = factory13.buildHelloElemVersionbitmap()
+ .setBitmaps(Collections.singletonList(bitmap))
+ .build();
+ m = factory13.buildHello()
+ .setXid(2000)
+ .setElements(Collections.singletonList(hem))
+ .build();
+ } else {
+ m = factory10.buildHello()
+ .setXid(2000)
+ .build();
+ }
+ break;
+ case FEATURES_REQUEST:
+ m = factory.buildFeaturesRequest()
+ .setXid(2000)
+ .build();
+ break;
+ case FEATURES_REPLY:
+
+ m = factory.buildFeaturesReply()
+ .setDatapathId(DatapathId.of(1000L))
+ .setXid(2000)
+ .build();
+ break;
+ case SET_CONFIG:
+ m = factory.buildSetConfig()
+ .setMissSendLen((short) 0xffff)
+ .setXid(2000)
+ .build();
+ break;
+ case BARRIER_REQUEST:
+ m = factory.buildBarrierRequest()
+ .setXid(2000)
+ .build();
+ break;
+ case GET_CONFIG_REQUEST:
+ m = factory.buildGetConfigRequest()
+ .setXid(2000)
+ .build();
+ break;
+ case GET_CONFIG_REPLY:
+ m = factory.buildGetConfigReply()
+ .setMissSendLen((short) 0xffff)
+ .setXid(2000)
+ .build();
+ break;
+ case STATS_REQUEST:
+ break;
+ case STATS_REPLY:
+ m = factory.buildDescStatsReply()
+ .setDpDesc("Datapath Description")
+ .setHwDesc("Hardware Secription")
+ .setMfrDesc("Manufacturer Desctiption")
+ .setSerialNum("Serial Number")
+ .setSwDesc("Software Desription")
+ .build();
+ break;
+ case ECHO_REQUEST:
+ m = factory.buildEchoRequest()
+ .setXid(2000)
+ .build();
+ break;
+ case FLOW_REMOVED:
+ break;
+
+ case PACKET_IN:
+ m = factory.buildPacketIn()
+ .setReason(OFPacketInReason.NO_MATCH)
+ .setTotalLen(1500)
+ .setXid(2000)
+ .build();
+ break;
+ case PORT_STATUS:
+ m = factory.buildPortStatus()
+ .setXid(2000)
+ .build();
+ break;
+
+ default:
+ m = factory.buildFeaturesRequest()
+ .setXid(2000)
+ .build();
+ break;
+ }
+
+ return (m);
+ }
+}
diff --git a/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFActionType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFActionType.java
new file mode 100644
index 0000000..fe5320d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsReply.java
new file mode 100644
index 0000000..ce8478d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsRequest.java
new file mode 100644
index 0000000..e2c6cc2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetReply.java
new file mode 100644
index 0000000..d29b921
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetRequest.java
new file mode 100644
index 0000000..6f52220
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncSet.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncSet.java
new file mode 100644
index 0000000..ff3927e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadActionCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadActionCode.java
new file mode 100644
index 0000000..13d5543
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadInstructionCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadInstructionCode.java
new file mode 100644
index 0000000..dfe86d3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadMatchCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadMatchCode.java
new file mode 100644
index 0000000..02f689a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadRequestCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadRequestCode.java
new file mode 100644
index 0000000..e254cb2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierReply.java
new file mode 100644
index 0000000..f64f16e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierRequest.java
new file mode 100644
index 0000000..b41e104
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnArpIdle.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnArpIdle.java
new file mode 100644
index 0000000..3d1893e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataReply.java
new file mode 100644
index 0000000..78e74c5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataRequest.java
new file mode 100644
index 0000000..bb9c2bb
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetReply.java
new file mode 100644
index 0000000..e8ae108
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetRequest.java
new file mode 100644
index 0000000..15ccbdc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetReply.java
new file mode 100644
index 0000000..6d25d7e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetRequest.java
new file mode 100644
index 0000000..2b23800
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnection.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnection.java
new file mode 100644
index 0000000..6d11288
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionState.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionState.java
new file mode 100644
index 0000000..df1312f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsReply.java
new file mode 100644
index 0000000..ffa03c4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsRequest.java
new file mode 100644
index 0000000..efee303
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerRoleReason.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerRoleReason.java
new file mode 100644
index 0000000..a8eb119
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsEntry.java
new file mode 100644
index 0000000..0aa4407
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsReply.java
new file mode 100644
index 0000000..5f72426
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsRequest.java
new file mode 100644
index 0000000..ebd3b9b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsEntry.java
new file mode 100644
index 0000000..f3d28d0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsReply.java
new file mode 100644
index 0000000..9edf42a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsRequest.java
new file mode 100644
index 0000000..cb2d5f9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsEntry.java
new file mode 100644
index 0000000..d709799
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsReply.java
new file mode 100644
index 0000000..4759d45
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsRequest.java
new file mode 100644
index 0000000..1f4ed0d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdle.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdle.java
new file mode 100644
index 0000000..88a2b14
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetReply.java
new file mode 100644
index 0000000..cf38356
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetRequest.java
new file mode 100644
index 0000000..aacb08c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetReply.java
new file mode 100644
index 0000000..6c0b274
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetRequest.java
new file mode 100644
index 0000000..aae991d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsEntry.java
new file mode 100644
index 0000000..d69a444
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsReply.java
new file mode 100644
index 0000000..0b08078
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsRequest.java
new file mode 100644
index 0000000..72b5983
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearReply.java
new file mode 100644
index 0000000..d0c7015
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearRequest.java
new file mode 100644
index 0000000..e61f3f6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsEntry.java
new file mode 100644
index 0000000..b39fd10
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsReply.java
new file mode 100644
index 0000000..6d2de9d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsRequest.java
new file mode 100644
index 0000000..8fa686d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryAdd.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryAdd.java
new file mode 100644
index 0000000..ef358fa
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDelete.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDelete.java
new file mode 100644
index 0000000..79093a3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsEntry.java
new file mode 100644
index 0000000..b0783c7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsReply.java
new file mode 100644
index 0000000..c859998
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsRequest.java
new file mode 100644
index 0000000..ba35738
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsEntry.java
new file mode 100644
index 0000000..ec0fb5b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsReply.java
new file mode 100644
index 0000000..fd88fb7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsRequest.java
new file mode 100644
index 0000000..90a6475
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableSetBucketsSize.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableSetBucketsSize.java
new file mode 100644
index 0000000..5066e21
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsEntry.java
new file mode 100644
index 0000000..d4b0cc8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsReply.java
new file mode 100644
index 0000000..f1d4b74
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsRequest.java
new file mode 100644
index 0000000..9fc4b7a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesReply.java
new file mode 100644
index 0000000..951541b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesRequest.java
new file mode 100644
index 0000000..62951a6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskReply.java
new file mode 100644
index 0000000..ddb293b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskRequest.java
new file mode 100644
index 0000000..0b7a63e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableReply.java
new file mode 100644
index 0000000..41125e7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableRequest.java
new file mode 100644
index 0000000..d7afc84
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringReply.java
new file mode 100644
index 0000000..44290fc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringRequest.java
new file mode 100644
index 0000000..0fc5419
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineReply.java
new file mode 100644
index 0000000..32f5647
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineRequest.java
new file mode 100644
index 0000000..e4ff994
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHeader.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHeader.java
new file mode 100644
index 0000000..1081da9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetReply.java
new file mode 100644
index 0000000..68946fe
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetRequest.java
new file mode 100644
index 0000000..0f2a690
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsReply.java
new file mode 100644
index 0000000..9ce6823
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsRequest.java
new file mode 100644
index 0000000..154a137
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnInterface.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnInterface.java
new file mode 100644
index 0000000..44f7739
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceNotif.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceNotif.java
new file mode 100644
index 0000000..d3b1d72
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceStatusT.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceStatusT.java
new file mode 100644
index 0000000..15505a2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsEntry.java
new file mode 100644
index 0000000..ac3ac18
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsReply.java
new file mode 100644
index 0000000..a1f354f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsRequest.java
new file mode 100644
index 0000000..f8765f3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLog.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLog.java
new file mode 100644
index 0000000..15c0862
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLoglevel.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLoglevel.java
new file mode 100644
index 0000000..fd9cadd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxReply.java
new file mode 100644
index 0000000..9601a76
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxRequest.java
new file mode 100644
index 0000000..1fa01cf
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxTimeout.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxTimeout.java
new file mode 100644
index 0000000..21f999d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduSlotNumT.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduSlotNumT.java
new file mode 100644
index 0000000..a843ca2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxReply.java
new file mode 100644
index 0000000..50ee693
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxRequest.java
new file mode 100644
index 0000000..22c4f72
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPktinFlag.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPktinFlag.java
new file mode 100644
index 0000000..1c45232
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounter.java
new file mode 100644
index 0000000..b73290a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsEntry.java
new file mode 100644
index 0000000..19caab7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsReply.java
new file mode 100644
index 0000000..4f618d5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsRequest.java
new file mode 100644
index 0000000..21ade35
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnRoleStatus.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnRoleStatus.java
new file mode 100644
index 0000000..d28172c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsReply.java
new file mode 100644
index 0000000..6d0e2dd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsRequest.java
new file mode 100644
index 0000000..9c7561f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetIpMask.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetIpMask.java
new file mode 100644
index 0000000..c435362
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableReply.java
new file mode 100644
index 0000000..3847e3a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableRequest.java
new file mode 100644
index 0000000..efff0cc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpReply.java
new file mode 100644
index 0000000..4451548
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpRequest.java
new file mode 100644
index 0000000..a9c133d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetMirroring.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetMirroring.java
new file mode 100644
index 0000000..2a0e36c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionReply.java
new file mode 100644
index 0000000..33b4834
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionRequest.java
new file mode 100644
index 0000000..07a3f88
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineReply.java
new file mode 100644
index 0000000..23f377a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineRequest.java
new file mode 100644
index 0000000..5c6bb48
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellCommand.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellCommand.java
new file mode 100644
index 0000000..a88be4b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellOutput.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellOutput.java
new file mode 100644
index 0000000..65f183a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellStatus.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellStatus.java
new file mode 100644
index 0000000..07ea119
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsReply.java
new file mode 100644
index 0000000..ee045bc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsRequest.java
new file mode 100644
index 0000000..f65bbb4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsEntry.java
new file mode 100644
index 0000000..7d11ed0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsReply.java
new file mode 100644
index 0000000..40cee33
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsRequest.java
new file mode 100644
index 0000000..e395412
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsEntry.java
new file mode 100644
index 0000000..399a16a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsReply.java
new file mode 100644
index 0000000..dadef01c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsRequest.java
new file mode 100644
index 0000000..121f74b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableSetBucketsSize.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableSetBucketsSize.java
new file mode 100644
index 0000000..f86f447
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTcpFlag.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTcpFlag.java
new file mode 100644
index 0000000..0883a10
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeReply.java
new file mode 100644
index 0000000..2b73179
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeRequest.java
new file mode 100644
index 0000000..438f2d5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnUdfAnchor.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnUdfAnchor.java
new file mode 100644
index 0000000..afdd4c8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateReply.java
new file mode 100644
index 0000000..5e17e22
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateRequest.java
new file mode 100644
index 0000000..e916e0f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveReply.java
new file mode 100644
index 0000000..d83182e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveRequest.java
new file mode 100644
index 0000000..ae43dea
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterConstants.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterConstants.java
new file mode 100644
index 0000000..0c85363
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsEntry.java
new file mode 100644
index 0000000..d8e2dde
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsReply.java
new file mode 100644
index 0000000..0789370
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsRequest.java
new file mode 100644
index 0000000..b29f0d9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterT.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterT.java
new file mode 100644
index 0000000..911f702
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVport.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVport.java
new file mode 100644
index 0000000..20f71bf
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2Gre.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2Gre.java
new file mode 100644
index 0000000..58144b1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2GreFlags.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2GreFlags.java
new file mode 100644
index 0000000..8a8728b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQ.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQ.java
new file mode 100644
index 0000000..3b05be9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQUntagged.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQUntagged.java
new file mode 100644
index 0000000..7e2a4be
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportStatus.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportStatus.java
new file mode 100644
index 0000000..f5e3132
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterConstants.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterConstants.java
new file mode 100644
index 0000000..21088de
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsEntry.java
new file mode 100644
index 0000000..18d6245
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsReply.java
new file mode 100644
index 0000000..2a564d0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsRequest.java
new file mode 100644
index 0000000..36bd75b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterT.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterT.java
new file mode 100644
index 0000000..38e537d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucket.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucket.java
new file mode 100644
index 0000000..02af70a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucketCounter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucketCounter.java
new file mode 100644
index 0000000..7ee630a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFCapabilities.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFCapabilities.java
new file mode 100644
index 0000000..5444962
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFConfigFlags.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFConfigFlags.java
new file mode 100644
index 0000000..8ea061b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerMaxLen.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerMaxLen.java
new file mode 100644
index 0000000..c2759d9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerRole.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerRole.java
new file mode 100644
index 0000000..4880189
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsReply.java
new file mode 100644
index 0000000..cdcd1bf
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsRequest.java
new file mode 100644
index 0000000..e0efe40
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoReply.java
new file mode 100644
index 0000000..ba8b181
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoRequest.java
new file mode 100644
index 0000000..6276280
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorMsg.java
new file mode 100644
index 0000000..dea4e97
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorType.java
new file mode 100644
index 0000000..53fd319
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenter.java
new file mode 100644
index 0000000..f953879
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsReply.java
new file mode 100644
index 0000000..a308ab2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsRequest.java
new file mode 100644
index 0000000..bb92557
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactories.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactories.java
new file mode 100644
index 0000000..afc2f1f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactory.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactory.java
new file mode 100644
index 0000000..7f1ae47
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesReply.java
new file mode 100644
index 0000000..4d0ab31
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesRequest.java
new file mode 100644
index 0000000..78cb71b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowAdd.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowAdd.java
new file mode 100644
index 0000000..19dccbf
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDelete.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDelete.java
new file mode 100644
index 0000000..09f7f3a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDeleteStrict.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDeleteStrict.java
new file mode 100644
index 0000000..72931d1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowMod.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowMod.java
new file mode 100644
index 0000000..76da051
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModCommand.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModCommand.java
new file mode 100644
index 0000000..dd0b856
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFailedCode.java
new file mode 100644
index 0000000..17cf0d2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFlags.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFlags.java
new file mode 100644
index 0000000..86c709f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModify.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModify.java
new file mode 100644
index 0000000..cc3129f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModifyStrict.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModifyStrict.java
new file mode 100644
index 0000000..15809c9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemoved.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemoved.java
new file mode 100644
index 0000000..186b8a6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemovedReason.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemovedReason.java
new file mode 100644
index 0000000..689b43f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsEntry.java
new file mode 100644
index 0000000..db9b486
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsReply.java
new file mode 100644
index 0000000..488acc2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsRequest.java
new file mode 100644
index 0000000..56fd5d8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowWildcards.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowWildcards.java
new file mode 100644
index 0000000..d732d7d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigReply.java
new file mode 100644
index 0000000..d3c0bd8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigRequest.java
new file mode 100644
index 0000000..ec49dfe
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupAdd.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupAdd.java
new file mode 100644
index 0000000..6502d85
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupCapabilities.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupCapabilities.java
new file mode 100644
index 0000000..679fad6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDelete.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDelete.java
new file mode 100644
index 0000000..c649b82
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsEntry.java
new file mode 100644
index 0000000..be11fa0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsReply.java
new file mode 100644
index 0000000..c3943e8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsRequest.java
new file mode 100644
index 0000000..260e411
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsReply.java
new file mode 100644
index 0000000..c449fdf
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsRequest.java
new file mode 100644
index 0000000..741a13d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupMod.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupMod.java
new file mode 100644
index 0000000..65bfe68
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModCommand.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModCommand.java
new file mode 100644
index 0000000..30f122c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModFailedCode.java
new file mode 100644
index 0000000..e88b22d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModify.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModify.java
new file mode 100644
index 0000000..3c408fe
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsEntry.java
new file mode 100644
index 0000000..efa4bf2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsReply.java
new file mode 100644
index 0000000..df8ea80
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsRequest.java
new file mode 100644
index 0000000..24bdcb5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupType.java
new file mode 100644
index 0000000..bd7c37e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHello.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHello.java
new file mode 100644
index 0000000..0858559
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElem.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElem.java
new file mode 100644
index 0000000..68d69cc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemType.java
new file mode 100644
index 0000000..1b221bd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemVersionbitmap.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemVersionbitmap.java
new file mode 100644
index 0000000..e8eb3c7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloFailedCode.java
new file mode 100644
index 0000000..92312dd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFInstructionType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFInstructionType.java
new file mode 100644
index 0000000..8fc38eb
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFIpv6ExthdrFlags.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFIpv6ExthdrFlags.java
new file mode 100644
index 0000000..7c33b94
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchType.java
new file mode 100644
index 0000000..17e768c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV1.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV1.java
new file mode 100644
index 0000000..06deb6b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV2.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV2.java
new file mode 100644
index 0000000..7d40266
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV3.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV3.java
new file mode 100644
index 0000000..6bfca6e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMessage.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMessage.java
new file mode 100644
index 0000000..9a9d6f4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeter.java
new file mode 100644
index 0000000..20b4e47
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandStats.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandStats.java
new file mode 100644
index 0000000..32adcc0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandType.java
new file mode 100644
index 0000000..ac61fb2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfig.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfig.java
new file mode 100644
index 0000000..5cd55b3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsReply.java
new file mode 100644
index 0000000..b80c158
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsRequest.java
new file mode 100644
index 0000000..6ab1828
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeatures.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeatures.java
new file mode 100644
index 0000000..4108de3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsReply.java
new file mode 100644
index 0000000..be19e8d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsRequest.java
new file mode 100644
index 0000000..b239a22
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFlags.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFlags.java
new file mode 100644
index 0000000..2df9c70
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterMod.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterMod.java
new file mode 100644
index 0000000..b01f37c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModCommand.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModCommand.java
new file mode 100644
index 0000000..31bbe23
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModFailedCode.java
new file mode 100644
index 0000000..b977cc3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStats.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStats.java
new file mode 100644
index 0000000..a5310eb
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsReply.java
new file mode 100644
index 0000000..7795fae
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsRequest.java
new file mode 100644
index 0000000..f48fb64
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRole.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRole.java
new file mode 100644
index 0000000..e3babe3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleReply.java
new file mode 100644
index 0000000..5ec1cb4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleRequest.java
new file mode 100644
index 0000000..002980c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraHeader.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraHeader.java
new file mode 100644
index 0000000..9be1c52
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFOxmClass.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFOxmClass.java
new file mode 100644
index 0000000..005b0e9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketIn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketIn.java
new file mode 100644
index 0000000..f1b1297
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketInReason.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketInReason.java
new file mode 100644
index 0000000..f13fb3c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketOut.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketOut.java
new file mode 100644
index 0000000..e17516d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketQueue.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketQueue.java
new file mode 100644
index 0000000..33d6521
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortConfig.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortConfig.java
new file mode 100644
index 0000000..5201415
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDesc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDesc.java
new file mode 100644
index 0000000..4e2d85a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsReply.java
new file mode 100644
index 0000000..c445c24
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsRequest.java
new file mode 100644
index 0000000..418e612
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortFeatures.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortFeatures.java
new file mode 100644
index 0000000..fd33a69
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortMod.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortMod.java
new file mode 100644
index 0000000..5c81061
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortModFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortModFailedCode.java
new file mode 100644
index 0000000..e43b52c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortReason.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortReason.java
new file mode 100644
index 0000000..2e75baa
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortState.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortState.java
new file mode 100644
index 0000000..40d1c6b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsEntry.java
new file mode 100644
index 0000000..fd844f9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsReply.java
new file mode 100644
index 0000000..90e0c31
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsRequest.java
new file mode 100644
index 0000000..2bbdf93
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatus.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatus.java
new file mode 100644
index 0000000..e7bee5b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigReply.java
new file mode 100644
index 0000000..d31aab4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigRequest.java
new file mode 100644
index 0000000..cddc9f0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueOpFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueOpFailedCode.java
new file mode 100644
index 0000000..21549e2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueProperties.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueProperties.java
new file mode 100644
index 0000000..a5a11fc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsEntry.java
new file mode 100644
index 0000000..4f04ad8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsReply.java
new file mode 100644
index 0000000..efeb67d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsRequest.java
new file mode 100644
index 0000000..3101abe
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleReply.java
new file mode 100644
index 0000000..2b3a992
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequest.java
new file mode 100644
index 0000000..15bae7e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequestFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequestFailedCode.java
new file mode 100644
index 0000000..19793ec
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSetConfig.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSetConfig.java
new file mode 100644
index 0000000..2caf3f4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReply.java
new file mode 100644
index 0000000..504180a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReplyFlags.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReplyFlags.java
new file mode 100644
index 0000000..e521381
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequest.java
new file mode 100644
index 0000000..94ea80b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequestFlags.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequestFlags.java
new file mode 100644
index 0000000..80ba542
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsType.java
new file mode 100644
index 0000000..fee8757
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSwitchConfigFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSwitchConfigFailedCode.java
new file mode 100644
index 0000000..646ce00
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTable.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTable.java
new file mode 100644
index 0000000..301ce93
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableConfig.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableConfig.java
new file mode 100644
index 0000000..d620606
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatureProp.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatureProp.java
new file mode 100644
index 0000000..4df78c2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActions.java
new file mode 100644
index 0000000..35ac87a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActionsMiss.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActionsMiss.java
new file mode 100644
index 0000000..00dff4d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfield.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfield.java
new file mode 100644
index 0000000..2fc37f7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfieldMiss.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfieldMiss.java
new file mode 100644
index 0000000..a1208be
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenter.java
new file mode 100644
index 0000000..2b80219
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenterMiss.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenterMiss.java
new file mode 100644
index 0000000..74a2040
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructions.java
new file mode 100644
index 0000000..43d489f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructionsMiss.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructionsMiss.java
new file mode 100644
index 0000000..edd4684
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropMatch.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropMatch.java
new file mode 100644
index 0000000..a065105
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTables.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTables.java
new file mode 100644
index 0000000..ec3dc29
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTablesMiss.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTablesMiss.java
new file mode 100644
index 0000000..d9c5911
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropType.java
new file mode 100644
index 0000000..36691ee
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWildcards.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWildcards.java
new file mode 100644
index 0000000..c513561
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActions.java
new file mode 100644
index 0000000..9b7dec1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActionsMiss.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActionsMiss.java
new file mode 100644
index 0000000..e3deb3c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfield.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfield.java
new file mode 100644
index 0000000..7b5811b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfieldMiss.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfieldMiss.java
new file mode 100644
index 0000000..f68d90d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatures.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatures.java
new file mode 100644
index 0000000..d74de81
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesFailedCode.java
new file mode 100644
index 0000000..5703e53
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsReply.java
new file mode 100644
index 0000000..10d48ff
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsRequest.java
new file mode 100644
index 0000000..00dc72d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableMod.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableMod.java
new file mode 100644
index 0000000..be009c9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableModFailedCode.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableModFailedCode.java
new file mode 100644
index 0000000..6f81b11
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsEntry.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsEntry.java
new file mode 100644
index 0000000..ee02f19
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsReply.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsReply.java
new file mode 100644
index 0000000..e16d879
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsRequest.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsRequest.java
new file mode 100644
index 0000000..a9dff30
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFType.java
new file mode 100644
index 0000000..aef779f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFUint64.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFUint64.java
new file mode 100644
index 0000000..c9d5edd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFAction.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFAction.java
new file mode 100644
index 0000000..6a2f731
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsn.java
new file mode 100644
index 0000000..c644ffd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnChecksum.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnChecksum.java
new file mode 100644
index 0000000..e09c19c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnMirror.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnMirror.java
new file mode 100644
index 0000000..8b15cd2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnSetTunnelDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnSetTunnelDst.java
new file mode 100644
index 0000000..24dbb3a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlIn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlIn.java
new file mode 100644
index 0000000..166d4a7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlOut.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlOut.java
new file mode 100644
index 0000000..d78e511
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecMplsTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecMplsTtl.java
new file mode 100644
index 0000000..e855cf0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecNwTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecNwTtl.java
new file mode 100644
index 0000000..5dbec27
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionEnqueue.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionEnqueue.java
new file mode 100644
index 0000000..11ab1a6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionExperimenter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionExperimenter.java
new file mode 100644
index 0000000..56d9ef9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionGroup.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionGroup.java
new file mode 100644
index 0000000..8d65fa8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNicira.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNicira.java
new file mode 100644
index 0000000..aad3c35
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNiciraDecTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNiciraDecTtl.java
new file mode 100644
index 0000000..55b81c9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionOutput.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionOutput.java
new file mode 100644
index 0000000..b673a22
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopMpls.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopMpls.java
new file mode 100644
index 0000000..3067e2f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopPbb.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopPbb.java
new file mode 100644
index 0000000..33934b6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopVlan.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopVlan.java
new file mode 100644
index 0000000..998f7db
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushMpls.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushMpls.java
new file mode 100644
index 0000000..76b7da2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushPbb.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushPbb.java
new file mode 100644
index 0000000..0177569
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushVlan.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushVlan.java
new file mode 100644
index 0000000..e98513b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlDst.java
new file mode 100644
index 0000000..1897651
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlSrc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlSrc.java
new file mode 100644
index 0000000..8dcc7f5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetField.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetField.java
new file mode 100644
index 0000000..25f91ce
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsLabel.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsLabel.java
new file mode 100644
index 0000000..214d66b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTc.java
new file mode 100644
index 0000000..6c43156
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTtl.java
new file mode 100644
index 0000000..c8513c6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwDst.java
new file mode 100644
index 0000000..539cd37
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwEcn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwEcn.java
new file mode 100644
index 0000000..a42e2c8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwSrc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwSrc.java
new file mode 100644
index 0000000..cd27977
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTos.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTos.java
new file mode 100644
index 0000000..38a133b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTtl.java
new file mode 100644
index 0000000..ed35d59
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetQueue.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetQueue.java
new file mode 100644
index 0000000..b2115ab
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpDst.java
new file mode 100644
index 0000000..680b99a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpSrc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpSrc.java
new file mode 100644
index 0000000..bf555aa
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanPcp.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanPcp.java
new file mode 100644
index 0000000..a448078
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanVid.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanVid.java
new file mode 100644
index 0000000..5bbf2c7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionStripVlan.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionStripVlan.java
new file mode 100644
index 0000000..d3fcc90
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActions.java
new file mode 100644
index 0000000..e465ac5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionId.java
new file mode 100644
index 0000000..0ffacb4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsn.java
new file mode 100644
index 0000000..c74b037
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnChecksum.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnChecksum.java
new file mode 100644
index 0000000..b051b37
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnMirror.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnMirror.java
new file mode 100644
index 0000000..60c4c92
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnSetTunnelDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnSetTunnelDst.java
new file mode 100644
index 0000000..b2c407a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlIn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlIn.java
new file mode 100644
index 0000000..0be31c3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlOut.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlOut.java
new file mode 100644
index 0000000..b29d1ff
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecMplsTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecMplsTtl.java
new file mode 100644
index 0000000..dfcc979
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecNwTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecNwTtl.java
new file mode 100644
index 0000000..f9b31f1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdExperimenter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdExperimenter.java
new file mode 100644
index 0000000..084ca57
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdGroup.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdGroup.java
new file mode 100644
index 0000000..b38c9ab
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNicira.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNicira.java
new file mode 100644
index 0000000..7c723ac
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNiciraDecTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNiciraDecTtl.java
new file mode 100644
index 0000000..6d53414
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdOutput.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdOutput.java
new file mode 100644
index 0000000..ea2749c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopMpls.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopMpls.java
new file mode 100644
index 0000000..9308ca1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopPbb.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopPbb.java
new file mode 100644
index 0000000..4371ec2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopVlan.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopVlan.java
new file mode 100644
index 0000000..757d40a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushMpls.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushMpls.java
new file mode 100644
index 0000000..5f76d66
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushPbb.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushPbb.java
new file mode 100644
index 0000000..0005457
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushVlan.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushVlan.java
new file mode 100644
index 0000000..c94cb34
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetField.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetField.java
new file mode 100644
index 0000000..d3f5328
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetMplsTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetMplsTtl.java
new file mode 100644
index 0000000..706c772
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetNwTtl.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetNwTtl.java
new file mode 100644
index 0000000..8e588be
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetQueue.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetQueue.java
new file mode 100644
index 0000000..2c29b66
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIds.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIds.java
new file mode 100644
index 0000000..8c6c132
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlv.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlv.java
new file mode 100644
index 0000000..bc150fd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvBroadcastQueryTimeout.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvBroadcastQueryTimeout.java
new file mode 100644
index 0000000..7de728a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCircuitId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCircuitId.java
new file mode 100644
index 0000000..d20aed0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCrcEnabled.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCrcEnabled.java
new file mode 100644
index 0000000..ec66f67
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleNotification.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleNotification.java
new file mode 100644
index 0000000..57dd477
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTime.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTime.java
new file mode 100644
index 0000000..ac87110
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTimeout.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTimeout.java
new file mode 100644
index 0000000..deb7e68
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIpv4.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIpv4.java
new file mode 100644
index 0000000..ea7dc41
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMac.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMac.java
new file mode 100644
index 0000000..f6978a5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMissPackets.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMissPackets.java
new file mode 100644
index 0000000..2b9a7ea
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvPort.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvPort.java
new file mode 100644
index 0000000..536075a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueId.java
new file mode 100644
index 0000000..844c727
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueWeight.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueWeight.java
new file mode 100644
index 0000000..a41686d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvReplyPackets.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvReplyPackets.java
new file mode 100644
index 0000000..ef2d93e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRequestPackets.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRequestPackets.java
new file mode 100644
index 0000000..bed22ae
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRxPackets.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRxPackets.java
new file mode 100644
index 0000000..98ac7da
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvTxPackets.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvTxPackets.java
new file mode 100644
index 0000000..e292b24
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfAnchor.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfAnchor.java
new file mode 100644
index 0000000..05eea9b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfId.java
new file mode 100644
index 0000000..ff5156b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfLength.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfLength.java
new file mode 100644
index 0000000..03ed71b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfOffset.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfOffset.java
new file mode 100644
index 0000000..c572fbf
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUnicastQueryTimeout.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUnicastQueryTimeout.java
new file mode 100644
index 0000000..26c6b12
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVlanVid.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVlanVid.java
new file mode 100644
index 0000000..3943538
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVrf.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVrf.java
new file mode 100644
index 0000000..b89d0e3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvs.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvs.java
new file mode 100644
index 0000000..b89d774
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadActionErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadActionErrorMsg.java
new file mode 100644
index 0000000..b21fd98
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadInstructionErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadInstructionErrorMsg.java
new file mode 100644
index 0000000..2a9ae22
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadMatchErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadMatchErrorMsg.java
new file mode 100644
index 0000000..73a2508
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadRequestErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadRequestErrorMsg.java
new file mode 100644
index 0000000..dac9bcc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFErrorMsgs.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFErrorMsgs.java
new file mode 100644
index 0000000..db7485d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFExperimenterErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFExperimenterErrorMsg.java
new file mode 100644
index 0000000..124b01e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFFlowModFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFFlowModFailedErrorMsg.java
new file mode 100644
index 0000000..91d0d43
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFGroupModFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFGroupModFailedErrorMsg.java
new file mode 100644
index 0000000..93944c1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFHelloFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFHelloFailedErrorMsg.java
new file mode 100644
index 0000000..7cf3afd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFMeterModFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFMeterModFailedErrorMsg.java
new file mode 100644
index 0000000..3d7a0c3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFPortModFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFPortModFailedErrorMsg.java
new file mode 100644
index 0000000..dfdfb79
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFQueueOpFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFQueueOpFailedErrorMsg.java
new file mode 100644
index 0000000..6c460df
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFRoleRequestFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFRoleRequestFailedErrorMsg.java
new file mode 100644
index 0000000..c24d291
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFSwitchConfigFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFSwitchConfigFailedErrorMsg.java
new file mode 100644
index 0000000..1c797ab
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableFeaturesFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableFeaturesFailedErrorMsg.java
new file mode 100644
index 0000000..93075dd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableModFailedErrorMsg.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableModFailedErrorMsg.java
new file mode 100644
index 0000000..9e7c822
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstruction.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstruction.java
new file mode 100644
index 0000000..85c4292
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionApplyActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionApplyActions.java
new file mode 100644
index 0000000..5547beb
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsn.java
new file mode 100644
index 0000000..24f9237
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnArpOffload.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnArpOffload.java
new file mode 100644
index 0000000..add97cc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDeny.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDeny.java
new file mode 100644
index 0000000..e930943
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDhcpOffload.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDhcpOffload.java
new file mode 100644
index 0000000..eb8a422
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSplitHorizonCheck.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSplitHorizonCheck.java
new file mode 100644
index 0000000..bef2b49
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSrcMacCheck.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSrcMacCheck.java
new file mode 100644
index 0000000..3e38615
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableVlanCounters.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableVlanCounters.java
new file mode 100644
index 0000000..9295e32
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPacketOfDeath.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPacketOfDeath.java
new file mode 100644
index 0000000..0f34780
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPermit.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPermit.java
new file mode 100644
index 0000000..a23fcf3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPrioritizePdus.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPrioritizePdus.java
new file mode 100644
index 0000000..41c242e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnRequireVlanXlate.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnRequireVlanXlate.java
new file mode 100644
index 0000000..b6d4f9b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionClearActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionClearActions.java
new file mode 100644
index 0000000..8323776
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionExperimenter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionExperimenter.java
new file mode 100644
index 0000000..f6b4244
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionGotoTable.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionGotoTable.java
new file mode 100644
index 0000000..9a80fb2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionMeter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionMeter.java
new file mode 100644
index 0000000..e965291
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteActions.java
new file mode 100644
index 0000000..a6f62c4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteMetadata.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteMetadata.java
new file mode 100644
index 0000000..4706932
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructions.java
new file mode 100644
index 0000000..fe09c2c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionId.java
new file mode 100644
index 0000000..906401c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdApplyActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdApplyActions.java
new file mode 100644
index 0000000..8d37525
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsn.java
new file mode 100644
index 0000000..7114df8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnArpOffload.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnArpOffload.java
new file mode 100644
index 0000000..c669714
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDeny.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDeny.java
new file mode 100644
index 0000000..5f4f489
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDhcpOffload.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDhcpOffload.java
new file mode 100644
index 0000000..43e6fc8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSplitHorizonCheck.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSplitHorizonCheck.java
new file mode 100644
index 0000000..57fc457
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSrcMacCheck.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSrcMacCheck.java
new file mode 100644
index 0000000..7b92fbc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableVlanCounters.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableVlanCounters.java
new file mode 100644
index 0000000..1e1366a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPacketOfDeath.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPacketOfDeath.java
new file mode 100644
index 0000000..a38265e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPermit.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPermit.java
new file mode 100644
index 0000000..a499743
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPrioritizePdus.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPrioritizePdus.java
new file mode 100644
index 0000000..08f1e7e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnRequireVlanXlate.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnRequireVlanXlate.java
new file mode 100644
index 0000000..f6b9dc9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdClearActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdClearActions.java
new file mode 100644
index 0000000..8c7c1d7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdExperimenter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdExperimenter.java
new file mode 100644
index 0000000..d54f3f9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdGotoTable.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdGotoTable.java
new file mode 100644
index 0000000..4e12baa
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdMeter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdMeter.java
new file mode 100644
index 0000000..277ab6e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteActions.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteActions.java
new file mode 100644
index 0000000..13b7dee
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteMetadata.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteMetadata.java
new file mode 100644
index 0000000..96ea693
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIds.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIds.java
new file mode 100644
index 0000000..901b87a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBand.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBand.java
new file mode 100644
index 0000000..51edbfc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDrop.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDrop.java
new file mode 100644
index 0000000..701ac61
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDscpRemark.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDscpRemark.java
new file mode 100644
index 0000000..8bb096d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandExperimenter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandExperimenter.java
new file mode 100644
index 0000000..f621170
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBands.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBands.java
new file mode 100644
index 0000000..52e6181
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxm.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxm.java
new file mode 100644
index 0000000..d14aa42
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOp.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOp.java
new file mode 100644
index 0000000..5526177
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOpMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOpMasked.java
new file mode 100644
index 0000000..92e0b8a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSha.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSha.java
new file mode 100644
index 0000000..dcb5a02
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpShaMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpShaMasked.java
new file mode 100644
index 0000000..210fe89
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpa.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpa.java
new file mode 100644
index 0000000..0b2cab1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpaMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpaMasked.java
new file mode 100644
index 0000000..023fcb2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTha.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTha.java
new file mode 100644
index 0000000..c91c1bc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpThaMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpThaMasked.java
new file mode 100644
index 0000000..e24bd33
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpa.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpa.java
new file mode 100644
index 0000000..3ea1500
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpaMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpaMasked.java
new file mode 100644
index 0000000..81501a7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupId.java
new file mode 100644
index 0000000..b23df57
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupIdMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupIdMasked.java
new file mode 100644
index 0000000..055fd7a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowed.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowed.java
new file mode 100644
index 0000000..b56e34c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowedMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowedMasked.java
new file mode 100644
index 0000000..7b5c7d7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128.java
new file mode 100644
index 0000000..42a86ff
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128Masked.java
new file mode 100644
index 0000000..9826f7a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassId.java
new file mode 100644
index 0000000..b587941
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassIdMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassIdMasked.java
new file mode 100644
index 0000000..b3619d0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassId.java
new file mode 100644
index 0000000..2ab08da
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassIdMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassIdMasked.java
new file mode 100644
index 0000000..5dbc3c2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassId.java
new file mode 100644
index 0000000..0202270
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassIdMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassIdMasked.java
new file mode 100644
index 0000000..06adca0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagId.java
new file mode 100644
index 0000000..c8c73f6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagIdMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagIdMasked.java
new file mode 100644
index 0000000..6b117dd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlags.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlags.java
new file mode 100644
index 0000000..c1a31d1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlagsMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlagsMasked.java
new file mode 100644
index 0000000..694c8b3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0.java
new file mode 100644
index 0000000..7143e5a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0Masked.java
new file mode 100644
index 0000000..ee1c5ff
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1.java
new file mode 100644
index 0000000..e45f0b3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1Masked.java
new file mode 100644
index 0000000..e28f8e2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2.java
new file mode 100644
index 0000000..dea445d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2Masked.java
new file mode 100644
index 0000000..549d930
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3.java
new file mode 100644
index 0000000..094b197
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3Masked.java
new file mode 100644
index 0000000..0a5a77f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4.java
new file mode 100644
index 0000000..d7ea548
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4Masked.java
new file mode 100644
index 0000000..735d3e8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5.java
new file mode 100644
index 0000000..52a0eb0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5Masked.java
new file mode 100644
index 0000000..138ac18
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6.java
new file mode 100644
index 0000000..6d84593
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6Masked.java
new file mode 100644
index 0000000..fd03177
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7.java
new file mode 100644
index 0000000..430ec39
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7Masked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7Masked.java
new file mode 100644
index 0000000..6859ec3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupId.java
new file mode 100644
index 0000000..84a94a3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupIdMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupIdMasked.java
new file mode 100644
index 0000000..992bd48
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrf.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrf.java
new file mode 100644
index 0000000..b27b0f2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrfMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrfMasked.java
new file mode 100644
index 0000000..f235551
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDst.java
new file mode 100644
index 0000000..9c70c2e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDstMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDstMasked.java
new file mode 100644
index 0000000..0987c6b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrc.java
new file mode 100644
index 0000000..7b0920a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrcMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrcMasked.java
new file mode 100644
index 0000000..e869585
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthType.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthType.java
new file mode 100644
index 0000000..6d59534
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthTypeMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthTypeMasked.java
new file mode 100644
index 0000000..9ae2f1f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Code.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Code.java
new file mode 100644
index 0000000..db219a7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4CodeMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4CodeMasked.java
new file mode 100644
index 0000000..2462b45
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Type.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Type.java
new file mode 100644
index 0000000..ede641b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4TypeMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4TypeMasked.java
new file mode 100644
index 0000000..7c8f011
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Code.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Code.java
new file mode 100644
index 0000000..7ff6ac8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6CodeMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6CodeMasked.java
new file mode 100644
index 0000000..2cf38b3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Type.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Type.java
new file mode 100644
index 0000000..de54d1d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6TypeMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6TypeMasked.java
new file mode 100644
index 0000000..bb61bd5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPort.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPort.java
new file mode 100644
index 0000000..85b2700
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPortMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPortMasked.java
new file mode 100644
index 0000000..ae20318
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPort.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPort.java
new file mode 100644
index 0000000..11ac28b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPortMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPortMasked.java
new file mode 100644
index 0000000..3e8970c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscp.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscp.java
new file mode 100644
index 0000000..0d829db
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscpMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscpMasked.java
new file mode 100644
index 0000000..a837b72
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcn.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcn.java
new file mode 100644
index 0000000..a70813f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcnMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcnMasked.java
new file mode 100644
index 0000000..4a3a1ff
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProto.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProto.java
new file mode 100644
index 0000000..dc284d6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProtoMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProtoMasked.java
new file mode 100644
index 0000000..906f742
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Dst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Dst.java
new file mode 100644
index 0000000..6e97025
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4DstMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4DstMasked.java
new file mode 100644
index 0000000..8a008c8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Src.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Src.java
new file mode 100644
index 0000000..1cfbc04
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4SrcMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4SrcMasked.java
new file mode 100644
index 0000000..9fcd714
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Dst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Dst.java
new file mode 100644
index 0000000..bb92e3b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6DstMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6DstMasked.java
new file mode 100644
index 0000000..ca98060
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Flabel.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Flabel.java
new file mode 100644
index 0000000..fa28ec7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6FlabelMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6FlabelMasked.java
new file mode 100644
index 0000000..7e19baa
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSll.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSll.java
new file mode 100644
index 0000000..5365c2f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSllMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSllMasked.java
new file mode 100644
index 0000000..baf32e1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTarget.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTarget.java
new file mode 100644
index 0000000..421f148
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTargetMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTargetMasked.java
new file mode 100644
index 0000000..807affe
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTll.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTll.java
new file mode 100644
index 0000000..ca9f1ad
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTllMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTllMasked.java
new file mode 100644
index 0000000..1e1a6e6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Src.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Src.java
new file mode 100644
index 0000000..528c16c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6SrcMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6SrcMasked.java
new file mode 100644
index 0000000..1fc4e20
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadata.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadata.java
new file mode 100644
index 0000000..92964e6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadataMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadataMasked.java
new file mode 100644
index 0000000..58d0437
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabel.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabel.java
new file mode 100644
index 0000000..d64a878
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabelMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabelMasked.java
new file mode 100644
index 0000000..21d94f4
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTc.java
new file mode 100644
index 0000000..e7cf2e5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTcMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTcMasked.java
new file mode 100644
index 0000000..150ba6c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDst.java
new file mode 100644
index 0000000..16cf32d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDstMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDstMasked.java
new file mode 100644
index 0000000..15df987
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrc.java
new file mode 100644
index 0000000..1953087
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrcMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrcMasked.java
new file mode 100644
index 0000000..4454c3c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDst.java
new file mode 100644
index 0000000..9bbedc2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDstMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDstMasked.java
new file mode 100644
index 0000000..798dab2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrc.java
new file mode 100644
index 0000000..b4aa20e
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrcMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrcMasked.java
new file mode 100644
index 0000000..4a39ded
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelId.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelId.java
new file mode 100644
index 0000000..63a7e7a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelIdMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelIdMasked.java
new file mode 100644
index 0000000..2f8b9b8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDst.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDst.java
new file mode 100644
index 0000000..097db29
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDstMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDstMasked.java
new file mode 100644
index 0000000..37fea56
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrc.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrc.java
new file mode 100644
index 0000000..9f16f2d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrcMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrcMasked.java
new file mode 100644
index 0000000..623b6b7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcp.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcp.java
new file mode 100644
index 0000000..858e6a0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcpMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcpMasked.java
new file mode 100644
index 0000000..62a34b2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVid.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVid.java
new file mode 100644
index 0000000..4b34b05
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVidMasked.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVidMasked.java
new file mode 100644
index 0000000..36110a7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxms.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxms.java
new file mode 100644
index 0000000..9cc2bba
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProp.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProp.java
new file mode 100644
index 0000000..d82da0a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropExperimenter.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropExperimenter.java
new file mode 100644
index 0000000..50ed036
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMaxRate.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMaxRate.java
new file mode 100644
index 0000000..44f3c24
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMinRate.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMinRate.java
new file mode 100644
index 0000000..e6941f7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProps.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProps.java
new file mode 100644
index 0000000..ba85e85
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnChecksumVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnChecksumVer10.java
new file mode 100644
index 0000000..3d3649b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnMirrorVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnMirrorVer10.java
new file mode 100644
index 0000000..374feb9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnSetTunnelDstVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnSetTunnelDstVer10.java
new file mode 100644
index 0000000..add313c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnVer10.java
new file mode 100644
index 0000000..14a7001
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionEnqueueVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionEnqueueVer10.java
new file mode 100644
index 0000000..650f3ba
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionExperimenterVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionExperimenterVer10.java
new file mode 100644
index 0000000..e0b1bf2
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionIdsVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionIdsVer10.java
new file mode 100644
index 0000000..cde6599
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraDecTtlVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraDecTtlVer10.java
new file mode 100644
index 0000000..c72dcc6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraVer10.java
new file mode 100644
index 0000000..2023afa
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionOutputVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionOutputVer10.java
new file mode 100644
index 0000000..e224bc8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlDstVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlDstVer10.java
new file mode 100644
index 0000000..348da90
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlSrcVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlSrcVer10.java
new file mode 100644
index 0000000..cc88013
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwDstVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwDstVer10.java
new file mode 100644
index 0000000..f7a4d27
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwSrcVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwSrcVer10.java
new file mode 100644
index 0000000..4d30837
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwTosVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwTosVer10.java
new file mode 100644
index 0000000..43493bb
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpDstVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpDstVer10.java
new file mode 100644
index 0000000..822c484
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpSrcVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpSrcVer10.java
new file mode 100644
index 0000000..d69dfb8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanPcpVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanPcpVer10.java
new file mode 100644
index 0000000..b4005e0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanVidVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanVidVer10.java
new file mode 100644
index 0000000..f63f283
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionStripVlanVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionStripVlanVer10.java
new file mode 100644
index 0000000..1314c1a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionTypeSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionTypeSerializerVer10.java
new file mode 100644
index 0000000..e094760
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionVer10.java
new file mode 100644
index 0000000..9917dcd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionsVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionsVer10.java
new file mode 100644
index 0000000..7bb203b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsReplyVer10.java
new file mode 100644
index 0000000..a30e829
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsRequestVer10.java
new file mode 100644
index 0000000..4b36011
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionCodeSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionCodeSerializerVer10.java
new file mode 100644
index 0000000..b1f67c7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionErrorMsgVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionErrorMsgVer10.java
new file mode 100644
index 0000000..aae9003
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestCodeSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestCodeSerializerVer10.java
new file mode 100644
index 0000000..fc11c91
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestErrorMsgVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestErrorMsgVer10.java
new file mode 100644
index 0000000..3d0c19d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierReplyVer10.java
new file mode 100644
index 0000000..37e7356
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierRequestVer10.java
new file mode 100644
index 0000000..e2def34
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataReplyVer10.java
new file mode 100644
index 0000000..a1c1020
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataRequestVer10.java
new file mode 100644
index 0000000..763b7d6
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetReplyVer10.java
new file mode 100644
index 0000000..fd16755
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetRequestVer10.java
new file mode 100644
index 0000000..f8ad0a0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetReplyVer10.java
new file mode 100644
index 0000000..4370e74
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetRequestVer10.java
new file mode 100644
index 0000000..5e765a0
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesReplyVer10.java
new file mode 100644
index 0000000..e63c1f7
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesRequestVer10.java
new file mode 100644
index 0000000..f5ddab5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskReplyVer10.java
new file mode 100644
index 0000000..45fdba5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskRequestVer10.java
new file mode 100644
index 0000000..f35f0dc
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableReplyVer10.java
new file mode 100644
index 0000000..852182c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableRequestVer10.java
new file mode 100644
index 0000000..8d432c1
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringReplyVer10.java
new file mode 100644
index 0000000..080b04f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringRequestVer10.java
new file mode 100644
index 0000000..e4422dd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHeaderVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHeaderVer10.java
new file mode 100644
index 0000000..e2d6efe
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetReplyVer10.java
new file mode 100644
index 0000000..afe00bd
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetRequestVer10.java
new file mode 100644
index 0000000..3282c8d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnInterfaceVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnInterfaceVer10.java
new file mode 100644
index 0000000..19db624
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxReplyVer10.java
new file mode 100644
index 0000000..9d16d85
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxRequestVer10.java
new file mode 100644
index 0000000..5f6a942
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxTimeoutVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxTimeoutVer10.java
new file mode 100644
index 0000000..129b62a
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduSlotNumTSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduSlotNumTSerializerVer10.java
new file mode 100644
index 0000000..3faf113
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxReplyVer10.java
new file mode 100644
index 0000000..5bbf0da
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxRequestVer10.java
new file mode 100644
index 0000000..2f85edb
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetIpMaskVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetIpMaskVer10.java
new file mode 100644
index 0000000..46ccc66
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableReplyVer10.java
new file mode 100644
index 0000000..2f93768
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableRequestVer10.java
new file mode 100644
index 0000000..dbc6dea
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetMirroringVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetMirroringVer10.java
new file mode 100644
index 0000000..cb71dd5
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionReplyVer10.java
new file mode 100644
index 0000000..7791761
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionRequestVer10.java
new file mode 100644
index 0000000..758af8d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellCommandVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellCommandVer10.java
new file mode 100644
index 0000000..a6a04cb
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellOutputVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellOutputVer10.java
new file mode 100644
index 0000000..54e7951
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellStatusVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellStatusVer10.java
new file mode 100644
index 0000000..13189de
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsReplyVer10.java
new file mode 100644
index 0000000..5dc77e8
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsRequestVer10.java
new file mode 100644
index 0000000..197a732
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnTlvsVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnTlvsVer10.java
new file mode 100644
index 0000000..7375e41
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateReplyVer10.java
new file mode 100644
index 0000000..1256b9c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateRequestVer10.java
new file mode 100644
index 0000000..69741e9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveReplyVer10.java
new file mode 100644
index 0000000..440624f
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveRequestVer10.java
new file mode 100644
index 0000000..f178056
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreFlagsSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreFlagsSerializerVer10.java
new file mode 100644
index 0000000..4c2111d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreVer10.java
new file mode 100644
index 0000000..32af98d
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQUntaggedSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQUntaggedSerializerVer10.java
new file mode 100644
index 0000000..e3f79b3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQVer10.java
new file mode 100644
index 0000000..7f5b0a3
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportStatusSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportStatusSerializerVer10.java
new file mode 100644
index 0000000..c4aa654
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportVer10.java
new file mode 100644
index 0000000..95e9682
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFCapabilitiesSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFCapabilitiesSerializerVer10.java
new file mode 100644
index 0000000..6bac973
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFConfigFlagsSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFConfigFlagsSerializerVer10.java
new file mode 100644
index 0000000..bd45beb
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsReplyVer10.java
new file mode 100644
index 0000000..ed1bf76
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsRequestVer10.java
new file mode 100644
index 0000000..71ac331
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoReplyVer10.java
new file mode 100644
index 0000000..260030c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoRequestVer10.java
new file mode 100644
index 0000000..ee34d40
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgVer10.java
new file mode 100644
index 0000000..03ecc4b
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgsVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgsVer10.java
new file mode 100644
index 0000000..bd921e9
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorTypeSerializerVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorTypeSerializerVer10.java
new file mode 100644
index 0000000..14e4696
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsReplyVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsReplyVer10.java
new file mode 100644
index 0000000..f97c13c
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsRequestVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsRequestVer10.java
new file mode 100644
index 0000000..fbe9855
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterVer10.java
new file mode 100644
index 0000000..37b7c26
--- /dev/null
+++ b/of-save/lib/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/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFactoryVer10.java b/of-save/lib/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFactoryVer10.java
new file mode 100644
index 0000000..7ef1b32
--- /dev/null
+++ b/of-save/lib/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");
+ }
+
<