OpenFlow message processing for new loxi
Depends-On: Id69c8597eb4564653c56cdc90f2dcec50afbdd25
Change-Id: Ib14fbadd3debf98ce1d56343179f8e7929f8ade8
diff --git a/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java b/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
index 6d6b318..c758c48 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/FlowRule.java
@@ -34,9 +34,19 @@
* Used to check reason parameter in flows.
*/
enum FlowRemoveReason {
- NO_REASON,
IDLE_TIMEOUT,
- HARD_TIMEOUT;
+ HARD_TIMEOUT,
+ DELETE,
+ GROUP_DELETE,
+ METER_DELETE,
+ EVICTION,
+ NO_REASON;
+
+ /**
+ * Covert short to enum.
+ * @return reason in enum
+ * @param reason remove reason in integer
+ */
public static FlowRemoveReason parseShort(short reason) {
switch (reason) {
case -1 :
@@ -45,6 +55,14 @@
return IDLE_TIMEOUT;
case 1:
return HARD_TIMEOUT;
+ case 2 :
+ return DELETE;
+ case 3:
+ return GROUP_DELETE;
+ case 4:
+ return METER_DELETE;
+ case 5:
+ return EVICTION;
default :
return NO_REASON;
}
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
index d59b859..7d1a9d1 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
@@ -249,7 +249,8 @@
.register(new ImmutableListSerializer(),
ImmutableList.class,
ImmutableList.of(1).getClass(),
- ImmutableList.of(1, 2).getClass())
+ ImmutableList.of(1, 2).getClass(),
+ ImmutableList.of(1, 2, 3).subList(1, 3).getClass())
.register(new ImmutableSetSerializer(),
ImmutableSet.class,
ImmutableSet.of().getClass(),
diff --git a/drivers/default/features.xml b/drivers/default/features.xml
index 52741e7..4f2efc5 100644
--- a/drivers/default/features.xml
+++ b/drivers/default/features.xml
@@ -20,7 +20,7 @@
<feature>onos-api</feature>
<bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
- <bundle>mvn:org.onosproject/openflowj/0.9.7.onos</bundle>
+ <bundle>mvn:org.onosproject/openflowj/3.2.0.onos</bundle>
<bundle>mvn:${project.groupId}/onos-of-api/${project.version}</bundle>
</feature>
diff --git a/drivers/flowspec/pom.xml b/drivers/flowspec/pom.xml
index 187a651..93554a6 100644
--- a/drivers/flowspec/pom.xml
+++ b/drivers/flowspec/pom.xml
@@ -61,7 +61,6 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
- <version>19.0</version>
</dependency>
<dependency>
<groupId>org.onosproject</groupId>
diff --git a/drivers/optical/src/main/java/org/onosproject/driver/optical/handshaker/OplinkHandshakerUtil.java b/drivers/optical/src/main/java/org/onosproject/driver/optical/handshaker/OplinkHandshakerUtil.java
index d5b18b4..5ea98c8 100644
--- a/drivers/optical/src/main/java/org/onosproject/driver/optical/handshaker/OplinkHandshakerUtil.java
+++ b/drivers/optical/src/main/java/org/onosproject/driver/optical/handshaker/OplinkHandshakerUtil.java
@@ -20,8 +20,8 @@
import java.util.List;
import java.util.Set;
-import org.jboss.netty.buffer.ChannelBuffer;
-import org.jboss.netty.buffer.ChannelBuffers;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
import org.onosproject.drivers.optical.OpticalAdjacencyLinkService;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.Annotations;
@@ -203,7 +203,7 @@
// |---------------------------------------------------------------------------|
// | Header (2 bytes) | ID (4 BITS) | MAC (6 bytes) | Port (4 bytes) | Unused |
// |---------------------------------------------------------------------------|
- ChannelBuffer buffer = ChannelBuffers.buffer(OPSPEC_BYTES);
+ ByteBuf buffer = Unpooled.buffer(OPSPEC_BYTES);
otn.getOpspec().write32Bytes(buffer);
long mac = buffer.getLong(OPSPEC_MAC_POS) << OPSPEC_ID_BITS >>> OPSPEC_MAC_BIT_OFF;
int port = (int) (buffer.getLong(OPSPEC_PORT_POS) << OPSPEC_ID_BITS >>> OPSPEC_PORT_BIT_OFF);
diff --git a/features/features.xml b/features/features.xml
index 2dfb2f2..7403b25 100644
--- a/features/features.xml
+++ b/features/features.xml
@@ -23,7 +23,7 @@
<bundle>mvn:commons-lang/commons-lang/2.6</bundle>
<bundle>mvn:org.apache.commons/commons-lang3/3.5</bundle>
<bundle>mvn:commons-configuration/commons-configuration/1.10</bundle>
- <bundle>mvn:com.google.guava/guava/19.0</bundle>
+ <bundle>mvn:com.google.guava/guava/20.0</bundle>
<bundle>mvn:io.netty/netty/3.10.5.Final</bundle>
<bundle>mvn:io.netty/netty-common/4.1.5.Final</bundle>
<bundle>mvn:io.netty/netty-buffer/4.1.5.Final</bundle>
diff --git a/lib/BUCK b/lib/BUCK
index 6295c8c..6867754 100644
--- a/lib/BUCK
+++ b/lib/BUCK
@@ -1,4 +1,4 @@
-# ***** This file was auto-generated at Mon, 15 May 2017 21:06:23 GMT. Do not edit this file manually. *****
+# ***** This file was auto-generated at Thu, 18 May 2017 21:45:37 GMT. Do not edit this file manually. *****
# ***** Use onos-lib-gen *****
pass_thru_pom(
@@ -23,6 +23,7 @@
':objenesis',
':guava',
':netty',
+ ':netty-buffer',
':netty-common',
':minimal-json',
':kryo',
@@ -311,19 +312,19 @@
remote_jar (
name = 'guava',
- out = 'guava-19.0.jar',
- url = 'mvn:com.google.guava:guava:jar:19.0',
- sha1 = '6ce200f6b23222af3d8abb6b6459e6c44f4bb0e9',
- maven_coords = 'com.google.guava:guava:19.0',
+ out = 'guava-20.0.jar',
+ url = 'mvn:com.google.guava:guava:jar:20.0',
+ sha1 = '89507701249388e1ed5ddcf8c41f4ce1be7831ef',
+ maven_coords = 'com.google.guava:guava:20.0',
visibility = [ 'PUBLIC' ],
)
remote_jar (
name = 'guava-testlib',
- out = 'guava-testlib-19.0.jar',
- url = 'mvn:com.google.guava:guava-testlib:jar:19.0',
- sha1 = 'ce5b880b206de3f76d364988a6308c68c726f74a',
- maven_coords = 'com.google.guava:guava-testlib:jar:NON-OSGI:19.0',
+ out = 'guava-testlib-20.0.jar',
+ url = 'mvn:com.google.guava:guava-testlib:jar:20.0',
+ sha1 = 'e3666edd0d7b10ddfa5242b998efd831e4b264ff',
+ maven_coords = 'com.google.guava:guava-testlib:jar:NON-OSGI:20.0',
visibility = [ 'PUBLIC' ],
)
@@ -860,10 +861,10 @@
remote_jar (
name = 'openflowj',
- out = 'openflowj-0.9.8.onos.jar',
- url = 'mvn:org.onosproject:openflowj:jar:0.9.8.onos',
- sha1 = '4dc85deb24584eee18ef103d10a01c20d2f657bc',
- maven_coords = 'org.onosproject:openflowj:0.9.8.onos',
+ out = 'openflowj-3.2.0.onos.jar',
+ url = 'mvn:org.onosproject:openflowj:jar:3.2.0.onos',
+ sha1 = 'b890ecb2901912b9c7ededd1d1028fea73aa5db4',
+ maven_coords = 'org.onosproject:openflowj:3.2.0.onos',
visibility = [ 'PUBLIC' ],
)
@@ -1278,4 +1279,3 @@
maven_coords = 'org.apache.sshd:sshd-core:1.4.0',
visibility = [ 'PUBLIC' ],
)
-
diff --git a/lib/deps.json b/lib/deps.json
index e6074f2..d4efb01 100644
--- a/lib/deps.json
+++ b/lib/deps.json
@@ -12,6 +12,7 @@
"objenesis",
"guava",
"netty",
+ "netty-buffer",
"netty-common",
"minimal-json",
"kryo",
@@ -111,8 +112,8 @@
"ganymed-ssh2": "mvn:ch.ethz.ganymed:ganymed-ssh2:262",
"gmetric4j": "mvn:info.ganglia.gmetric4j:gmetric4j:1.0.10",
"gson": "mvn:com.google.code.gson:gson:jar:2.6.2",
- "guava": "mvn:com.google.guava:guava:19.0",
- "guava-testlib": "mvn:com.google.guava:guava-testlib:19.0",
+ "guava": "mvn:com.google.guava:guava:20.0",
+ "guava-testlib": "mvn:com.google.guava:guava-testlib:20.0",
"hamcrest-all": "mvn:org.hamcrest:hamcrest-all:1.3",
"hk2-api": "mvn:org.glassfish.hk2:hk2-api:2.5.0-b32",
"hk2-locator": "mvn:org.glassfish.hk2:hk2-locator:2.5.0-b32",
@@ -172,7 +173,7 @@
"catalyst-netty": "mvn:io.atomix.catalyst:catalyst-netty:1.2.1",
"catalyst-transport": "mvn:io.atomix.catalyst:catalyst-transport:1.2.1",
"objenesis": "mvn:org.objenesis:objenesis:2.2",
- "openflowj": "mvn:org.onosproject:openflowj:0.9.8.onos",
+ "openflowj": "mvn:org.onosproject:openflowj:3.2.0.onos",
"org.apache.felix.scr": "mvn:org.apache.felix:org.apache.felix.scr:1.8.2",
"org.apache.felix.scr.annotations": "mvn:org.apache.felix:org.apache.felix.scr.annotations:1.9.12",
"org.apache.karaf.features.core": "mvn:org.apache.karaf.features:org.apache.karaf.features.core:3.0.8",
diff --git a/lib/pom.xml b/lib/pom.xml
index e76a082..c7616bc 100644
--- a/lib/pom.xml
+++ b/lib/pom.xml
@@ -38,7 +38,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<onos-build-conf.version>1.11.0-SNAPSHOT</onos-build-conf.version>
<netty4.version>4.1.5.Final</netty4.version>
- <openflowj.version>0.9.8.onos</openflowj.version>
+ <openflowj.version>3.2.0.onos-SNAPSHOT</openflowj.version>
<onos-maven-plugin.version>1.10</onos-maven-plugin.version>
<osgi.version>5.0.0</osgi.version>
<karaf.version>3.0.8</karaf.version>
@@ -46,7 +46,7 @@
<jetty.version>9.2.21.v20170120</jetty.version>
<jackson.version>2.8.6</jackson.version>
<slf4j.version>1.7.21</slf4j.version>
- <guava.version>19.0</guava.version>
+ <guava.version>20.0</guava.version>
<commons.io.version>2.4</commons.io.version>
<!-- TODO argLine was originally added maven-surfire-plugin configuration
to fix locale errors for non-US developers. However, it breaks
diff --git a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/ThirdPartyMessage.java b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/ThirdPartyMessage.java
index afe2701..7cc5b5d 100644
--- a/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/ThirdPartyMessage.java
+++ b/protocols/openflow/api/src/main/java/org/onosproject/openflow/controller/ThirdPartyMessage.java
@@ -15,12 +15,15 @@
*/
package org.onosproject.openflow.controller;
-import org.jboss.netty.buffer.ChannelBuffer;
+import io.netty.buffer.ByteBuf;
import org.projectfloodlight.openflow.protocol.OFMessage;
import org.projectfloodlight.openflow.protocol.OFType;
import org.projectfloodlight.openflow.protocol.OFVersion;
import com.google.common.hash.PrimitiveSink;
+
+import java.util.Arrays;
+
/**
* Used to support for the third party privacy flow rule.
* it implements OFMessage interface to use exist adapter API.
@@ -61,11 +64,21 @@
}
@Override
- public void writeTo(ChannelBuffer channelBuffer) {
+ public void writeTo(ByteBuf byteBuf) {
// Do nothing here for now.
}
@Override
+ public boolean equalsIgnoreXid(Object obj) {
+ return Arrays.equals(payLoad, ((ThirdPartyMessage) obj).payLoad());
+ }
+
+ @Override
+ public int hashCodeIgnoreXid() {
+ return payLoad.hashCode();
+ }
+
+ @Override
public Builder createBuilder() {
// Do nothing here for now.
return null;
diff --git a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFMessageDecoder.java b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFMessageDecoder.java
index 26f7221..c5cb9f7 100644
--- a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFMessageDecoder.java
+++ b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFMessageDecoder.java
@@ -17,6 +17,8 @@
package org.onosproject.openflow.controller.impl;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
@@ -47,7 +49,15 @@
// 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);
+
+ //toByteBuffer is optimized to avoid copying.
+ ByteBuf byteBuf = Unpooled.wrappedBuffer(buffer.toByteBuffer());
+ OFMessage message = reader.readFrom(byteBuf);
+
+ if (message != null) {
+ //set buffer's read index, as it has not been changed.
+ buffer.readerIndex(buffer.readerIndex() + byteBuf.readerIndex());
+ }
return message;
}
diff --git a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFMessageEncoder.java b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFMessageEncoder.java
index abb63f1..727301f 100644
--- a/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFMessageEncoder.java
+++ b/protocols/openflow/ctl/src/main/java/org/onosproject/openflow/controller/impl/OFMessageEncoder.java
@@ -18,6 +18,8 @@
import java.util.List;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.Channel;
@@ -46,13 +48,16 @@
size += ofm.getLengthU();
}*/
- ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+ ByteBuf bb = Unpooled.buffer();
for (OFMessage ofm : msglist) {
if (ofm != null) {
- ofm.writeTo(buf);
+ ofm.writeTo(bb);
}
}
+
+ ChannelBuffer buf = ChannelBuffers.wrappedBuffer(bb.nioBuffer());
+
return buf;
}
diff --git a/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/OFDescStatsReplyAdapter.java b/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/OFDescStatsReplyAdapter.java
index 564ca7b..c49acbb 100644
--- a/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/OFDescStatsReplyAdapter.java
+++ b/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/OFDescStatsReplyAdapter.java
@@ -17,7 +17,7 @@
import java.util.Set;
-import org.jboss.netty.buffer.ChannelBuffer;
+import io.netty.buffer.ByteBuf;
import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
import org.projectfloodlight.openflow.protocol.OFStatsReplyFlags;
import org.projectfloodlight.openflow.protocol.OFStatsType;
@@ -81,11 +81,23 @@
}
@Override
- public void writeTo(ChannelBuffer channelBuffer) {
+ public void writeTo(ByteBuf byteBuf) {
}
@Override
+ public boolean equalsIgnoreXid(Object obj) {
+ // Do nothing here for now
+ return true;
+ }
+
+ @Override
+ public int hashCodeIgnoreXid() {
+ // Do nothing here for now
+ return 0;
+ }
+
+ @Override
public Builder createBuilder() {
return null;
}
diff --git a/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/OfMessageAdapter.java b/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/OfMessageAdapter.java
index 6c9ddde..f0737e5 100644
--- a/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/OfMessageAdapter.java
+++ b/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/OfMessageAdapter.java
@@ -15,7 +15,7 @@
*/
package org.onosproject.openflow;
-import org.jboss.netty.buffer.ChannelBuffer;
+import io.netty.buffer.ByteBuf;
import org.projectfloodlight.openflow.protocol.OFMessage;
import org.projectfloodlight.openflow.protocol.OFType;
import org.projectfloodlight.openflow.protocol.OFVersion;
@@ -50,7 +50,19 @@
}
@Override
- public void writeTo(ChannelBuffer channelBuffer) { }
+ public void writeTo(ByteBuf byteBuf) { }
+
+ @Override
+ public boolean equalsIgnoreXid(Object obj) {
+ // Do nothing here for now
+ return true;
+ }
+
+ @Override
+ public int hashCodeIgnoreXid() {
+ // Do nothing here for now
+ return 0;
+ }
@Override
public Builder createBuilder() {
diff --git a/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/controller/impl/OFMessageEncoderTest.java b/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/controller/impl/OFMessageEncoderTest.java
index 43b5f3d..e62345c 100644
--- a/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/controller/impl/OFMessageEncoderTest.java
+++ b/protocols/openflow/ctl/src/test/java/org/onosproject/openflow/controller/impl/OFMessageEncoderTest.java
@@ -18,6 +18,7 @@
import java.nio.charset.StandardCharsets;
import java.util.List;
+import io.netty.buffer.ByteBuf;
import org.jboss.netty.buffer.ChannelBuffer;
import org.junit.Test;
import org.onosproject.openflow.OfMessageAdapter;
@@ -45,9 +46,9 @@
}
@Override
- public void writeTo(ChannelBuffer channelBuffer) {
+ public void writeTo(ByteBuf byteBuf) {
String message = "message" + Integer.toString(id) + " ";
- channelBuffer.writeBytes(message.getBytes(StandardCharsets.UTF_8));
+ byteBuf.writeBytes(message.getBytes(StandardCharsets.UTF_8));
}
}
diff --git a/providers/openflow/base/features.xml b/providers/openflow/base/features.xml
index f2af0c6..dc00bde 100644
--- a/providers/openflow/base/features.xml
+++ b/providers/openflow/base/features.xml
@@ -18,7 +18,7 @@
<feature name="${project.artifactId}" version="${project.version}"
description="${project.description}">
<feature>onos-api</feature>
- <bundle>mvn:org.onosproject/openflowj/0.9.7.onos</bundle>
+ <bundle>mvn:org.onosproject/openflowj/3.2.0.onos</bundle>
<bundle>mvn:${project.groupId}/onos-of-api/${project.version}</bundle>
<bundle>mvn:${project.groupId}/onos-of-ctl/${project.version}</bundle>
diff --git a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
index f9858a4..5e0fae4 100644
--- a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -110,6 +110,7 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.Dictionary;
+import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -364,12 +365,14 @@
OFPortMod.Builder pmb = sw.factory().buildPortMod();
OFPort port = OFPort.of((int) portNumber.toLong());
pmb.setPortNo(port);
- if (enable) {
- pmb.setConfig(0x0); // port_down bit 0
- } else {
- pmb.setConfig(0x1); // port_down bit 1
+ Set<OFPortConfig> portConfig = EnumSet.noneOf(OFPortConfig.class);
+ if (!enable) {
+ portConfig.add(OFPortConfig.PORT_DOWN);
}
- pmb.setMask(0x1);
+ pmb.setConfig(portConfig);
+ Set<OFPortConfig> portMask = EnumSet.noneOf(OFPortConfig.class);
+ portMask.add(OFPortConfig.PORT_DOWN);
+ pmb.setMask(portMask);
pmb.setAdvertise(0x0);
for (OFPortDesc pd : sw.getPorts()) {
if (pd.getPortNo().equals(port)) {
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/util/FlowEntryBuilder.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/util/FlowEntryBuilder.java
index 5c245a8..9fa03be 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/util/FlowEntryBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/util/FlowEntryBuilder.java
@@ -208,7 +208,7 @@
.withPriority(removed.getPriority())
.withIdleTimeout(removed.getIdleTimeout())
.withCookie(removed.getCookie().getValue())
- .withReason(FlowRule.FlowRemoveReason.parseShort(removed.getReason()));
+ .withReason(FlowRule.FlowRemoveReason.parseShort((short) removed.getReason().ordinal()));
if (removed.getVersion() != OFVersion.OF_10) {
builder.forTable(removed.getTableId().getValue());
diff --git a/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterModBuilder.java b/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterModBuilder.java
index 406337b..a26e05a 100644
--- a/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterModBuilder.java
+++ b/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterModBuilder.java
@@ -28,8 +28,10 @@
import org.slf4j.Logger;
import java.util.Collection;
+import java.util.EnumSet;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
import java.util.stream.Collectors;
import static com.google.common.base.Preconditions.checkArgument;
@@ -82,37 +84,36 @@
public OFMeterMod add() {
validate();
OFMeterMod.Builder builder = builderMeterMod();
- builder.setCommand(OFMeterModCommand.ADD.ordinal());
+ builder.setCommand(OFMeterModCommand.ADD);
return builder.build();
}
public OFMeterMod remove() {
validate();
OFMeterMod.Builder builder = builderMeterMod();
- builder.setCommand(OFMeterModCommand.DELETE.ordinal());
+ builder.setCommand(OFMeterModCommand.DELETE);
return builder.build();
}
public OFMeterMod modify() {
validate();
OFMeterMod.Builder builder = builderMeterMod();
- builder.setCommand(OFMeterModCommand.MODIFY.ordinal());
+ builder.setCommand(OFMeterModCommand.MODIFY);
return builder.build();
}
private OFMeterMod.Builder builderMeterMod() {
OFMeterMod.Builder builder = factory.buildMeterMod();
- int flags = 0;
+ Set<OFMeterFlags> flags = EnumSet.noneOf(OFMeterFlags.class);
if (burst) {
- // covering loxi short comings.
- flags |= 1 << OFMeterFlags.BURST.ordinal();
+ flags.add(OFMeterFlags.BURST);
}
switch (unit) {
case PKTS_PER_SEC:
- flags |= 1 << OFMeterFlags.PKTPS.ordinal();
+ flags.add(OFMeterFlags.PKTPS);
break;
case KB_PER_SEC:
- flags |= 1 << OFMeterFlags.KBPS.ordinal();
+ flags.add(OFMeterFlags.KBPS);
break;
default:
log.warn("Unknown unit type {}", unit);
diff --git a/tools/package/maven-plugin/pom.xml b/tools/package/maven-plugin/pom.xml
index 2d36c86..8d3758d 100644
--- a/tools/package/maven-plugin/pom.xml
+++ b/tools/package/maven-plugin/pom.xml
@@ -54,7 +54,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
- <version>19.0</version>
+ <version>20.0</version>
</dependency>
<dependency>