Change for removing ip related info and some fix to our device.
OnosDeviceManager Unit tests have not been done because it is supposed to be done by Patrik.
Change-Id: Icfc5bafe82cc0d4f428926b298f0867ea1be4e7d
diff --git a/src/main/java/net/onrc/onos/core/datastore/serializers/Device.java b/src/main/java/net/onrc/onos/core/datastore/serializers/Device.java
new file mode 100644
index 0000000..41b9991
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/datastore/serializers/Device.java
@@ -0,0 +1,692 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: device.proto
+
+package net.onrc.onos.core.datastore.serializers;
+
+public final class Device {
+ private Device() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ }
+ public interface DevicePropertyOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // required bytes mac = 1;
+ /**
+ * <code>required bytes mac = 1;</code>
+ */
+ boolean hasMac();
+ /**
+ * <code>required bytes mac = 1;</code>
+ */
+ com.google.protobuf.ByteString getMac();
+
+ // repeated bytes portIds = 2;
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ java.util.List<com.google.protobuf.ByteString> getPortIdsList();
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ int getPortIdsCount();
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ com.google.protobuf.ByteString getPortIds(int index);
+
+ // optional bytes value = 3;
+ /**
+ * <code>optional bytes value = 3;</code>
+ */
+ boolean hasValue();
+ /**
+ * <code>optional bytes value = 3;</code>
+ */
+ com.google.protobuf.ByteString getValue();
+ }
+ /**
+ * Protobuf type {@code device.DeviceProperty}
+ */
+ public static final class DeviceProperty extends
+ com.google.protobuf.GeneratedMessage
+ implements DevicePropertyOrBuilder {
+ // Use DeviceProperty.newBuilder() to construct.
+ private DeviceProperty(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private DeviceProperty(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+ private static final DeviceProperty defaultInstance;
+ public static DeviceProperty getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public DeviceProperty getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.UnknownFieldSet unknownFields;
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DeviceProperty(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ mac_ = input.readBytes();
+ break;
+ }
+ case 18: {
+ if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
+ portIds_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
+ mutable_bitField0_ |= 0x00000002;
+ }
+ portIds_.add(input.readBytes());
+ break;
+ }
+ case 26: {
+ bitField0_ |= 0x00000002;
+ value_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
+ portIds_ = java.util.Collections.unmodifiableList(portIds_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return net.onrc.onos.core.datastore.serializers.Device.internal_static_device_DeviceProperty_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return net.onrc.onos.core.datastore.serializers.Device.internal_static_device_DeviceProperty_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ net.onrc.onos.core.datastore.serializers.Device.DeviceProperty.class, net.onrc.onos.core.datastore.serializers.Device.DeviceProperty.Builder.class);
+ }
+
+ public static com.google.protobuf.Parser<DeviceProperty> PARSER =
+ new com.google.protobuf.AbstractParser<DeviceProperty>() {
+ public DeviceProperty parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DeviceProperty(input, extensionRegistry);
+ }
+ };
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DeviceProperty> getParserForType() {
+ return PARSER;
+ }
+
+ private int bitField0_;
+ // required bytes mac = 1;
+ public static final int MAC_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString mac_;
+ /**
+ * <code>required bytes mac = 1;</code>
+ */
+ public boolean hasMac() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>required bytes mac = 1;</code>
+ */
+ public com.google.protobuf.ByteString getMac() {
+ return mac_;
+ }
+
+ // repeated bytes portIds = 2;
+ public static final int PORTIDS_FIELD_NUMBER = 2;
+ private java.util.List<com.google.protobuf.ByteString> portIds_;
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public java.util.List<com.google.protobuf.ByteString>
+ getPortIdsList() {
+ return portIds_;
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public int getPortIdsCount() {
+ return portIds_.size();
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPortIds(int index) {
+ return portIds_.get(index);
+ }
+
+ // optional bytes value = 3;
+ public static final int VALUE_FIELD_NUMBER = 3;
+ private com.google.protobuf.ByteString value_;
+ /**
+ * <code>optional bytes value = 3;</code>
+ */
+ public boolean hasValue() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ /**
+ * <code>optional bytes value = 3;</code>
+ */
+ public com.google.protobuf.ByteString getValue() {
+ return value_;
+ }
+
+ private void initFields() {
+ mac_ = com.google.protobuf.ByteString.EMPTY;
+ portIds_ = java.util.Collections.emptyList();
+ value_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ if (!hasMac()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, mac_);
+ }
+ for (int i = 0; i < portIds_.size(); i++) {
+ output.writeBytes(2, portIds_.get(i));
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(3, value_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, mac_);
+ }
+ {
+ int dataSize = 0;
+ for (int i = 0; i < portIds_.size(); i++) {
+ dataSize += com.google.protobuf.CodedOutputStream
+ .computeBytesSizeNoTag(portIds_.get(i));
+ }
+ size += dataSize;
+ size += 1 * getPortIdsList().size();
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(3, value_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseDelimitedFrom(input, extensionRegistry);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input);
+ }
+ public static net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return PARSER.parseFrom(input, extensionRegistry);
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(net.onrc.onos.core.datastore.serializers.Device.DeviceProperty prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code device.DeviceProperty}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements net.onrc.onos.core.datastore.serializers.Device.DevicePropertyOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return net.onrc.onos.core.datastore.serializers.Device.internal_static_device_DeviceProperty_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return net.onrc.onos.core.datastore.serializers.Device.internal_static_device_DeviceProperty_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ net.onrc.onos.core.datastore.serializers.Device.DeviceProperty.class, net.onrc.onos.core.datastore.serializers.Device.DeviceProperty.Builder.class);
+ }
+
+ // Construct using net.onrc.onos.core.datastore.serializers.Device.DeviceProperty.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ mac_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000001);
+ portIds_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ value_ = com.google.protobuf.ByteString.EMPTY;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return net.onrc.onos.core.datastore.serializers.Device.internal_static_device_DeviceProperty_descriptor;
+ }
+
+ public net.onrc.onos.core.datastore.serializers.Device.DeviceProperty getDefaultInstanceForType() {
+ return net.onrc.onos.core.datastore.serializers.Device.DeviceProperty.getDefaultInstance();
+ }
+
+ public net.onrc.onos.core.datastore.serializers.Device.DeviceProperty build() {
+ net.onrc.onos.core.datastore.serializers.Device.DeviceProperty result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public net.onrc.onos.core.datastore.serializers.Device.DeviceProperty buildPartial() {
+ net.onrc.onos.core.datastore.serializers.Device.DeviceProperty result = new net.onrc.onos.core.datastore.serializers.Device.DeviceProperty(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.mac_ = mac_;
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ portIds_ = java.util.Collections.unmodifiableList(portIds_);
+ bitField0_ = (bitField0_ & ~0x00000002);
+ }
+ result.portIds_ = portIds_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.value_ = value_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof net.onrc.onos.core.datastore.serializers.Device.DeviceProperty) {
+ return mergeFrom((net.onrc.onos.core.datastore.serializers.Device.DeviceProperty)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(net.onrc.onos.core.datastore.serializers.Device.DeviceProperty other) {
+ if (other == net.onrc.onos.core.datastore.serializers.Device.DeviceProperty.getDefaultInstance()) return this;
+ if (other.hasMac()) {
+ setMac(other.getMac());
+ }
+ if (!other.portIds_.isEmpty()) {
+ if (portIds_.isEmpty()) {
+ portIds_ = other.portIds_;
+ bitField0_ = (bitField0_ & ~0x00000002);
+ } else {
+ ensurePortIdsIsMutable();
+ portIds_.addAll(other.portIds_);
+ }
+ onChanged();
+ }
+ if (other.hasValue()) {
+ setValue(other.getValue());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ if (!hasMac()) {
+
+ return false;
+ }
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ net.onrc.onos.core.datastore.serializers.Device.DeviceProperty parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (net.onrc.onos.core.datastore.serializers.Device.DeviceProperty) e.getUnfinishedMessage();
+ throw e;
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ // required bytes mac = 1;
+ private com.google.protobuf.ByteString mac_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>required bytes mac = 1;</code>
+ */
+ public boolean hasMac() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ /**
+ * <code>required bytes mac = 1;</code>
+ */
+ public com.google.protobuf.ByteString getMac() {
+ return mac_;
+ }
+ /**
+ * <code>required bytes mac = 1;</code>
+ */
+ public Builder setMac(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ mac_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>required bytes mac = 1;</code>
+ */
+ public Builder clearMac() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ mac_ = getDefaultInstance().getMac();
+ onChanged();
+ return this;
+ }
+
+ // repeated bytes portIds = 2;
+ private java.util.List<com.google.protobuf.ByteString> portIds_ = java.util.Collections.emptyList();
+ private void ensurePortIdsIsMutable() {
+ if (!((bitField0_ & 0x00000002) == 0x00000002)) {
+ portIds_ = new java.util.ArrayList<com.google.protobuf.ByteString>(portIds_);
+ bitField0_ |= 0x00000002;
+ }
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public java.util.List<com.google.protobuf.ByteString>
+ getPortIdsList() {
+ return java.util.Collections.unmodifiableList(portIds_);
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public int getPortIdsCount() {
+ return portIds_.size();
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public com.google.protobuf.ByteString getPortIds(int index) {
+ return portIds_.get(index);
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public Builder setPortIds(
+ int index, com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePortIdsIsMutable();
+ portIds_.set(index, value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public Builder addPortIds(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensurePortIdsIsMutable();
+ portIds_.add(value);
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public Builder addAllPortIds(
+ java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
+ ensurePortIdsIsMutable();
+ super.addAll(values, portIds_);
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>repeated bytes portIds = 2;</code>
+ */
+ public Builder clearPortIds() {
+ portIds_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+
+ // optional bytes value = 3;
+ private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>optional bytes value = 3;</code>
+ */
+ public boolean hasValue() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ /**
+ * <code>optional bytes value = 3;</code>
+ */
+ public com.google.protobuf.ByteString getValue() {
+ return value_;
+ }
+ /**
+ * <code>optional bytes value = 3;</code>
+ */
+ public Builder setValue(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000004;
+ value_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>optional bytes value = 3;</code>
+ */
+ public Builder clearValue() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ value_ = getDefaultInstance().getValue();
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:device.DeviceProperty)
+ }
+
+ static {
+ defaultInstance = new DeviceProperty(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:device.DeviceProperty)
+ }
+
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_device_DeviceProperty_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_device_DeviceProperty_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\014device.proto\022\006device\"=\n\016DeviceProperty" +
+ "\022\013\n\003mac\030\001 \002(\014\022\017\n\007portIds\030\002 \003(\014\022\r\n\005value\030" +
+ "\003 \001(\014B2\n(net.onrc.onos.core.datastore.se" +
+ "rializersB\006Device"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ internal_static_device_DeviceProperty_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_device_DeviceProperty_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_device_DeviceProperty_descriptor,
+ new java.lang.String[] { "Mac", "PortIds", "Value", });
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
index cfdb02b..15cdc57 100644
--- a/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
@@ -1,7 +1,6 @@
package net.onrc.onos.core.datastore.topology;
import java.nio.ByteBuffer;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -12,6 +11,7 @@
import net.onrc.onos.core.datastore.DataStoreClient;
import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.serializers.Device.DeviceProperty;
import net.onrc.onos.core.datastore.topology.KVLink.STATUS;
import net.onrc.onos.core.datastore.utils.ByteArrayComparator;
import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
@@ -22,6 +22,8 @@
import org.slf4j.LoggerFactory;
import com.esotericsoftware.kryo.Kryo;
+import com.google.protobuf.ByteString;
+import com.google.protobuf.InvalidProtocolBufferException;
/**
* Device object.
@@ -56,10 +58,6 @@
private TreeSet<byte[]> portIds;
private transient boolean isPortIdsModified;
- // Assume there is only one ip on a device now.
- private int ip;
- private long lastSeenTime;
-
// Assuming mac is unique cluster-wide
public static byte[] getDeviceID(final byte[] mac) {
return DeviceEvent.getDeviceID(mac).array();
@@ -159,40 +157,38 @@
public byte[] serialize() {
Map<Object, Object> map = getPropertyMap();
- map.put(PROP_MAC, mac);
- if (isPortIdsModified) {
- byte[][] portIdArray = new byte[portIds.size()][];
- map.put(PROP_PORT_IDS, portIds.toArray(portIdArray));
- isPortIdsModified = false;
+ DeviceProperty.Builder dev = DeviceProperty.newBuilder();
+
+ dev.setMac(ByteString.copyFrom(mac));
+ for (byte[] port : portIds) {
+ dev.addPortIds(ByteString.copyFrom(port));
}
- return serializePropertyMap(DEVICE_KRYO.get(), map);
+ if (!map.isEmpty()) {
+ byte[] propMaps = serializePropertyMap(DEVICE_KRYO.get(), map);
+ dev.setValue(ByteString.copyFrom(propMaps));
+ }
+
+ return dev.build().toByteArray();
}
@Override
protected boolean deserialize(final byte[] bytes) {
- boolean success = deserializePropertyMap(DEVICE_KRYO.get(), bytes);
- if (!success) {
- log.error("Deserializing Link: " + this + " failed.");
+
+ try {
+ boolean success = true;
+
+ DeviceProperty dev = DeviceProperty.parseFrom(bytes);
+ for (ByteString portId : dev.getPortIdsList()) {
+ this.addPortId(portId.toByteArray());
+ }
+ byte[] props = dev.getValue().toByteArray();
+ success &= deserializePropertyMap(DEVICE_KRYO.get(), props);
+ return success;
+ } catch (InvalidProtocolBufferException e) {
+ log.error("Deserializing Device: " + this + " failed.", e);
return false;
}
- Map<Object, Object> map = this.getPropertyMap();
-
- if (this.portIds == null) {
- this.portIds = new TreeSet<>(
- ByteArrayComparator.BYTEARRAY_COMPARATOR);
- }
- byte[][] portIdArray = (byte[][]) map.get(PROP_PORT_IDS);
- if (portIdArray != null) {
- this.portIds.clear();
- this.portIds.addAll(Arrays.asList(portIdArray));
- isPortIdsModified = false;
- } else {
- // trigger write on next serialize
- isPortIdsModified = true;
- }
-
- return success;
}
@Override
@@ -201,20 +197,4 @@
return "[" + this.getClass().getSimpleName()
+ " " + ByteArrayUtil.toHexStringBuilder(mac, ":") + "]";
}
-
- public int getIp() {
- return ip;
- }
-
- public void setIp(int ip) {
- this.ip = ip;
- }
-
- public long getLastSeenTime() {
- return lastSeenTime;
- }
-
- public void setLastSeenTime(long lastSeenTime) {
- this.lastSeenTime = lastSeenTime;
- }
}
diff --git a/src/main/java/net/onrc/onos/core/devicemanager/OnosDeviceManager.java b/src/main/java/net/onrc/onos/core/devicemanager/OnosDeviceManager.java
index 99c8769..dde6f55 100644
--- a/src/main/java/net/onrc/onos/core/devicemanager/OnosDeviceManager.java
+++ b/src/main/java/net/onrc/onos/core/devicemanager/OnosDeviceManager.java
@@ -45,9 +45,11 @@
IOFMessageListener,
IOnosDeviceService,
IEventChannelListener<Long, OnosDevice> {
+
private static final Logger log = LoggerFactory.getLogger(OnosDeviceManager.class);
- private static final int CLEANUP_SECOND = 60 * 60;
- private static final int AGEING_MILLSEC = 60 * 60 * 1000;
+ private static final long DEVICE_CLEANING_INITIAL_DELAY = 30;
+ private int cleanupSecondConfig = 60 * 60;
+ private int agingMillisecConfig = 60 * 60 * 1000;
private CopyOnWriteArrayList<IOnosDeviceListener> deviceListeners;
private IFloodlightProviderService floodlightProvider;
@@ -120,7 +122,10 @@
return Command.CONTINUE;
}
- private Command processPacketIn(IOFSwitch sw, OFPacketIn pi, Ethernet eth) {
+ //This "protected" modifier is for unit test.
+ //The above "receive" method couldn't be tested
+ //because of IFloodlightProviderService static final field.
+ protected Command processPacketIn(IOFSwitch sw, OFPacketIn pi, Ethernet eth) {
long dpid = sw.getId();
short portId = pi.getInPort();
Long mac = eth.getSourceMAC().toLong();
@@ -139,8 +144,8 @@
//There is the same existing device. Update only ActiveSince time.
exDev.setLastSeenTimestamp(new Date());
if (log.isTraceEnabled()) {
- log.debug("In the datagrid, there is the same device."
- + "Only update last seen time. dpid {}, port {}, mac {}, ip {}, lastSeenTime {}",
+ log.trace("In the local cache, there is the same device."
+ + "Only update last seen time: dpid {}, port {}, mac {}, ip {}, lastSeenTime {}",
dpid, portId, srcDevice.getMacAddress(), srcDevice.getIpv4Address(), srcDevice.getLastSeenTimestamp().getTime());
}
return Command.CONTINUE;
@@ -152,8 +157,8 @@
//but the packet does not have an ip address.
exDev.setLastSeenTimestamp(new Date());
if (log.isTraceEnabled()) {
- log.debug("In the datagrid, there is the same device with no ip."
- + "Keep ip and update last seen time. dpid {}, port {}, mac {}, ip {} lastSeenTime {}",
+ log.trace("In the local cache, there is the same mac device and got no ip addr packet-in."
+ + "Only update last seen time. dpid {}, port {}, mac {}, ip {} lastSeenTime {}",
dpid, portId, srcDevice.getMacAddress(), exDev.getIpv4Address(), srcDevice.getLastSeenTimestamp().getTime());
}
return Command.CONTINUE;
@@ -163,7 +168,7 @@
//If the switch port we try to attach a new device already has a link, then stop adding device
if (networkGraph.getLink(dpid, (long) portId) != null) {
if (log.isTraceEnabled()) {
- log.debug("Stop adding OnosDevice {} due to there is a link to: dpid {} port {}",
+ log.trace("Stop adding OnosDevice {} due to there is a link to: dpid {} port {}",
srcDevice.getMacAddress(), dpid, portId);
}
return Command.CONTINUE;
@@ -172,7 +177,7 @@
addOnosDevice(mac, srcDevice);
if (log.isTraceEnabled()) {
- log.debug("Add device info in the set. dpid {}, port {}, mac {}, ip {}, lastSeenTime {}",
+ log.trace("Add device info: dpid {}, port {}, mac {}, ip {}, lastSeenTime {}",
dpid, portId, srcDevice.getMacAddress(), srcDevice.getIpv4Address(), srcDevice.getLastSeenTimestamp().getTime());
}
return Command.CONTINUE;
@@ -188,9 +193,9 @@
Set<OnosDevice> deleteSet = new HashSet<OnosDevice>();
for (OnosDevice dev : mapDevice.values()) {
long now = new Date().getTime();
- if ((now - dev.getLastSeenTimestamp().getTime() > AGEING_MILLSEC)) {
+ if ((now - dev.getLastSeenTimestamp().getTime() > agingMillisecConfig)) {
if (log.isTraceEnabled()) {
- log.debug("Remove device info in the datagrid. dpid {}, port {}, mac {}, ip {}, lastSeenTime {}, diff {}",
+ log.debug("Remove device info in the datagrid: dpid {}, port {}, mac {}, ip {}, lastSeenTime {}, diff {}",
dev.getSwitchDPID(), dev.getSwitchPort(), dev.getMacAddress(), dev.getIpv4Address(),
dev.getLastSeenTimestamp().getTime(), now - dev.getLastSeenTimestamp().getTime());
}
@@ -296,12 +301,12 @@
public void init(FloodlightModuleContext context)
throws FloodlightModuleException {
floodlightProvider = context.getServiceImpl(IFloodlightProviderService.class);
- EXECUTOR_SERVICE.scheduleAtFixedRate(new CleanDevice(), 30, CLEANUP_SECOND, TimeUnit.SECONDS);
-
deviceListeners = new CopyOnWriteArrayList<IOnosDeviceListener>();
datagrid = context.getServiceImpl(IDatagridService.class);
networkGraphService = context.getServiceImpl(INetworkGraphService.class);
networkGraph = networkGraphService.getNetworkGraph();
+
+ setOnosDeviceManagerProperty(context);
}
@Override
@@ -310,6 +315,7 @@
eventChannel = datagrid.addListener(DEVICE_CHANNEL_NAME, this,
Long.class,
OnosDevice.class);
+ EXECUTOR_SERVICE.scheduleAtFixedRate(new CleanDevice(), DEVICE_CLEANING_INITIAL_DELAY, cleanupSecondConfig, TimeUnit.SECONDS);
}
@Override
@@ -335,21 +341,21 @@
public void entryAdded(OnosDevice dev) {
Long mac = dev.getMacAddress().toLong();
mapDevice.put(mac, dev);
- log.debug("Device added: device mac {}", mac);
+ log.debug("Device added into local Cache: device mac {}", mac);
}
@Override
public void entryRemoved(OnosDevice dev) {
Long mac = dev.getMacAddress().toLong();
mapDevice.remove(mac);
- log.debug("Device removed: device mac {}", mac);
+ log.debug("Device removed into local Cache: device mac {}", mac);
}
@Override
public void entryUpdated(OnosDevice dev) {
Long mac = dev.getMacAddress().toLong();
mapDevice.put(mac, dev);
- log.debug("Device updated: device mac {}", mac);
+ log.debug("Device updated into local Cache: device mac {}", mac);
}
@Override
@@ -361,4 +367,19 @@
public void deleteOnosDeviceListener(IOnosDeviceListener listener) {
deviceListeners.remove(listener);
}
+
+ private void setOnosDeviceManagerProperty(FloodlightModuleContext context) {
+ Map<String, String> configOptions = context.getConfigParams(this);
+ String cleanupsec = configOptions.get("cleanupsec");
+ String agingmsec = configOptions.get("agingmsec");
+ if (cleanupsec != null) {
+ cleanupSecondConfig = Integer.parseInt(cleanupsec);
+ log.debug("CLEANUP_SECOND is set to {}", cleanupSecondConfig);
+ }
+
+ if (agingmsec != null) {
+ agingMillisecConfig = Integer.parseInt(agingmsec);
+ log.debug("AGEING_MILLSEC is set to {}", agingMillisecConfig);
+ }
+ }
}
diff --git a/src/main/java/net/onrc/onos/core/topology/Device.java b/src/main/java/net/onrc/onos/core/topology/Device.java
index 48035b3..8da4e36 100644
--- a/src/main/java/net/onrc/onos/core/topology/Device.java
+++ b/src/main/java/net/onrc/onos/core/topology/Device.java
@@ -1,8 +1,5 @@
package net.onrc.onos.core.topology;
-import java.net.InetAddress;
-import java.util.Collection;
-
import net.floodlightcontroller.util.MACAddress;
/**
@@ -22,13 +19,6 @@
public MACAddress getMacAddress();
/**
- * Get the device IP addresses.
- *
- * @return the device IP addresses.
- */
- public Collection<InetAddress> getIpAddress();
-
- /**
* Get the device attachment points.
* <p/>
* Add requirement for Iteration order? Latest observed port first.
diff --git a/src/main/java/net/onrc/onos/core/topology/DeviceEvent.java b/src/main/java/net/onrc/onos/core/topology/DeviceEvent.java
index 48d50e4..cdef9aa 100644
--- a/src/main/java/net/onrc/onos/core/topology/DeviceEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/DeviceEvent.java
@@ -1,11 +1,8 @@
package net.onrc.onos.core.topology;
-import java.net.InetAddress;
import java.nio.ByteBuffer;
-import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
-import java.util.Set;
import net.floodlightcontroller.util.MACAddress;
import net.onrc.onos.core.topology.PortEvent.SwitchPort;
@@ -14,7 +11,7 @@
* Self-contained Device event(s) Object
* <p/>
* Device event differ from other events.
- * Device Event represent add/remove of attachmentPoint or ipAddress.
+ * Device Event represent add/remove of attachmentPoint.
* Not add/remove of the DeviceObject itself.
* <p/>
* Multiple attachmentPoints can be specified to batch events into 1 object.
@@ -25,7 +22,6 @@
public class DeviceEvent {
private final MACAddress mac;
protected List<SwitchPort> attachmentPoints;
- protected Set<InetAddress> ipAddresses;
private long lastSeenTime;
/**
@@ -42,7 +38,6 @@
}
this.mac = mac;
this.attachmentPoints = new LinkedList<>();
- this.ipAddresses = new HashSet<>();
}
public MACAddress getMac() {
@@ -53,10 +48,6 @@
return attachmentPoints;
}
- public Set<InetAddress> getIpAddresses() {
- return ipAddresses;
- }
-
public void setAttachmentPoints(List<SwitchPort> attachmentPoints) {
this.attachmentPoints = attachmentPoints;
}
@@ -66,18 +57,9 @@
this.attachmentPoints.add(0, attachmentPoint);
}
-
- public boolean addIpAddress(InetAddress addr) {
- return this.ipAddresses.add(addr);
- }
-
- public boolean removeIpAddress(InetAddress addr) {
- return this.ipAddresses.remove(addr);
- }
-
@Override
public String toString() {
- return "[DeviceEvent " + mac + " attachmentPoints:" + attachmentPoints + " ipAddr:" + ipAddresses + "]";
+ return "[DeviceEvent " + mac + " attachmentPoints:" + attachmentPoints + "]";
}
// Assuming mac is unique cluster-wide
diff --git a/src/main/java/net/onrc/onos/core/topology/DeviceImpl.java b/src/main/java/net/onrc/onos/core/topology/DeviceImpl.java
index 28a7796..d070570 100644
--- a/src/main/java/net/onrc/onos/core/topology/DeviceImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/DeviceImpl.java
@@ -1,11 +1,7 @@
package net.onrc.onos.core.topology;
-import java.net.InetAddress;
-import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import java.util.LinkedList;
-import java.util.Set;
import net.floodlightcontroller.util.MACAddress;
@@ -16,14 +12,12 @@
private final MACAddress macAddr;
protected LinkedList<Port> attachmentPoints;
- protected Set<InetAddress> ipAddresses;
private long lastSeenTime;
public DeviceImpl(NetworkGraph graph, MACAddress mac) {
super(graph);
this.macAddr = mac;
this.attachmentPoints = new LinkedList<>();
- this.ipAddresses = new HashSet<>();
}
@Override
@@ -32,11 +26,6 @@
}
@Override
- public Collection<InetAddress> getIpAddress() {
- return Collections.unmodifiableSet(ipAddresses);
- }
-
- @Override
public Iterable<Port> getAttachmentPoints() {
return Collections.unmodifiableList(this.attachmentPoints);
}
@@ -73,22 +62,4 @@
boolean removeAttachmentPoint(Port p) {
return this.attachmentPoints.remove(p);
}
-
- /**
- * Only {@link TopologyManager} should use this method.
- *
- * @param p
- */
- boolean addIpAddress(InetAddress addr) {
- return this.ipAddresses.add(addr);
- }
-
- /**
- * Only {@link TopologyManager} should use this method.
- *
- * @param p
- */
- boolean removeIpAddress(InetAddress addr) {
- return this.ipAddresses.remove(addr);
- }
}
diff --git a/src/main/java/net/onrc/onos/core/topology/NetworkGraph.java b/src/main/java/net/onrc/onos/core/topology/NetworkGraph.java
index 3c583b4..99f7eda 100644
--- a/src/main/java/net/onrc/onos/core/topology/NetworkGraph.java
+++ b/src/main/java/net/onrc/onos/core/topology/NetworkGraph.java
@@ -1,7 +1,5 @@
package net.onrc.onos.core.topology;
-import java.net.InetAddress;
-
import net.floodlightcontroller.util.MACAddress;
/**
@@ -66,14 +64,6 @@
public Iterable<Link> getLinks();
/**
- * Get the network devices for a given IP address.
- *
- * @param ipAddress the IP address to use.
- * @return the network devices for the IP address.
- */
- public Iterable<Device> getDevicesByIp(InetAddress ipAddress);
-
- /**
* Get the network device for a given MAC address.
*
* @param address the MAC address to use.
diff --git a/src/main/java/net/onrc/onos/core/topology/NetworkGraphDatastore.java b/src/main/java/net/onrc/onos/core/topology/NetworkGraphDatastore.java
index 488915f..f5aec14 100644
--- a/src/main/java/net/onrc/onos/core/topology/NetworkGraphDatastore.java
+++ b/src/main/java/net/onrc/onos/core/topology/NetworkGraphDatastore.java
@@ -1,6 +1,5 @@
package net.onrc.onos.core.topology;
-import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -19,8 +18,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.net.InetAddresses;
-
/**
* The southbound interface to the network graph which allows clients to
* mutate the graph. This class will maintain the invariants of the network
@@ -193,18 +190,12 @@
log.debug("Adding device into DB. mac {}", device.getMac());
KVDevice rcDevice = new KVDevice(device.getMac().toBytes());
- rcDevice.setLastSeenTime(device.getLastSeenTime());
for (SwitchPort sp : device.getAttachmentPoints()) {
byte[] portId = KVPort.getPortID(sp.getDpid(), sp.getNumber());
rcDevice.addPortId(portId);
}
- for (InetAddress addr : device.getIpAddresses()) {
- //It assume only one ip on a device now.
- rcDevice.setIp(InetAddresses.coerceToInteger(addr));
- }
-
rcDevice.forceCreate();
return true;
diff --git a/src/main/java/net/onrc/onos/core/topology/NetworkGraphImpl.java b/src/main/java/net/onrc/onos/core/topology/NetworkGraphImpl.java
index d28e8bb..115afb5 100644
--- a/src/main/java/net/onrc/onos/core/topology/NetworkGraphImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/NetworkGraphImpl.java
@@ -1,11 +1,8 @@
package net.onrc.onos.core.topology;
-import java.net.InetAddress;
import java.util.Collections;
-import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
-import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.locks.Lock;
@@ -23,8 +20,6 @@
// DPID -> Switch
private ConcurrentMap<Long, Switch> switches;
-
- private ConcurrentMap<InetAddress, Set<Device>> addr2Device;
private ConcurrentMap<MACAddress, Device> mac2Device;
private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
@@ -35,7 +30,6 @@
public NetworkGraphImpl() {
// TODO: Does these object need to be stored in Concurrent Collection?
switches = new ConcurrentHashMap<>();
- addr2Device = new ConcurrentHashMap<>();
mac2Device = new ConcurrentHashMap<>();
}
@@ -107,42 +101,16 @@
}
@Override
- public Iterable<Device> getDevicesByIp(InetAddress ipAddress) {
- Set<Device> devices = addr2Device.get(ipAddress);
- if (devices == null) {
- return Collections.emptySet();
- }
- return Collections.unmodifiableCollection(devices);
- }
-
- @Override
public Device getDeviceByMac(MACAddress address) {
return mac2Device.get(address);
}
protected void putDevice(Device device) {
mac2Device.put(device.getMacAddress(), device);
- for (InetAddress ipAddr : device.getIpAddress()) {
- Set<Device> devices = addr2Device.get(ipAddr);
- if (devices == null) {
- devices = new HashSet<>();
- addr2Device.put(ipAddr, devices);
- }
- devices.add(device);
- }
}
protected void removeDevice(Device device) {
mac2Device.remove(device.getMacAddress());
- for (InetAddress ipAddr : device.getIpAddress()) {
- Set<Device> devices = addr2Device.get(ipAddr);
- if (devices != null) {
- devices.remove(device);
- if (devices.isEmpty()) {
- addr2Device.remove(ipAddr);
- }
- }
- }
}
@Override
diff --git a/src/main/java/net/onrc/onos/core/topology/NetworkGraphPublisher.java b/src/main/java/net/onrc/onos/core/topology/NetworkGraphPublisher.java
index e00e3c9..6f9b332 100644
--- a/src/main/java/net/onrc/onos/core/topology/NetworkGraphPublisher.java
+++ b/src/main/java/net/onrc/onos/core/topology/NetworkGraphPublisher.java
@@ -1,6 +1,5 @@
package net.onrc.onos.core.topology;
-import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -31,8 +30,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.net.InetAddresses;
-
/**
* The NetworkGraphPublisher subscribes to topology network events from the
* discovery modules. These events are reformatted and relayed to the topology
@@ -286,10 +283,6 @@
DeviceEvent event = new DeviceEvent(device.getMacAddress());
event.setAttachmentPoints(spLists);
event.setLastSeenTime(device.getLastSeenTimestamp().getTime());
- if (device.getIpv4Address() != null) {
- InetAddress ip = InetAddresses.fromInteger(device.getIpv4Address());
- event.addIpAddress(ip);
- }
// Does not use vlan info now.
networkGraphDiscoveryInterface.putDeviceDiscoveryEvent(event);
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyManager.java b/src/main/java/net/onrc/onos/core/topology/TopologyManager.java
index bc1fc9a..bf3874b 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyManager.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyManager.java
@@ -1,6 +1,5 @@
package net.onrc.onos.core.topology;
-import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collection;
@@ -14,9 +13,11 @@
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.LinkedBlockingQueue;
+import net.floodlightcontroller.util.MACAddress;
import net.onrc.onos.core.datagrid.IDatagridService;
import net.onrc.onos.core.datagrid.IEventChannel;
import net.onrc.onos.core.datagrid.IEventChannelListener;
+import net.onrc.onos.core.datastore.topology.KVDevice;
import net.onrc.onos.core.datastore.topology.KVLink;
import net.onrc.onos.core.datastore.topology.KVPort;
import net.onrc.onos.core.datastore.topology.KVSwitch;
@@ -1034,20 +1035,16 @@
* @param deviceEvent the Device Event with the device to add.
*/
private void addDevice(DeviceEvent deviceEvent) {
+ log.debug("Adding a device to the Network Graph with mac {}", deviceEvent.getMac());
Device device = networkGraph.getDeviceByMac(deviceEvent.getMac());
if (device == null) {
- log.debug("Existing device was not found in networkGraph. New device. mac {}", deviceEvent.getMac());
+ log.debug("Existing device was not found in the NetworkGraph: Adding new device: mac {}", deviceEvent.getMac());
device = new DeviceImpl(networkGraph, deviceEvent.getMac());
}
DeviceImpl deviceImpl = getDeviceImpl(device);
- // Update the IP addresses
- for (InetAddress ipAddr : deviceEvent.getIpAddresses()) {
- deviceImpl.addIpAddress(ipAddr);
- }
-
// Process each attachment point
boolean attachmentFound = false;
for (SwitchPort swp : deviceEvent.getAttachmentPoints()) {
@@ -1077,7 +1074,7 @@
// Update the device in the Network Graph
if (attachmentFound) {
- log.debug("Storing the info into networkGraph. mac {}", deviceEvent.getMac());
+ log.debug("Storing the device info into the NetworkGraph: mac {}", deviceEvent.getMac());
networkGraph.putDevice(device);
apiAddedDeviceEvents.add(deviceEvent);
}
@@ -1091,6 +1088,7 @@
* @param deviceEvent the Device Event with the device to remove.
*/
private void removeDevice(DeviceEvent deviceEvent) {
+ log.debug("Removing a device to the Network Graph: mac {}", deviceEvent.getMac());
Device device = networkGraph.getDeviceByMac(deviceEvent.getMac());
if (device == null) {
log.warn("Device {} already removed, ignoring", deviceEvent);
@@ -1113,6 +1111,7 @@
deviceImpl.removeAttachmentPoint(port);
}
+ log.debug("Removing the device info into the NetworkGraph: mac {}", deviceEvent.getMac());
networkGraph.removeDevice(device);
apiRemovedDeviceEvents.add(deviceEvent);
}
@@ -1210,13 +1209,12 @@
collection.add(eventEntry);
}
- // TODO Is Device going to be in DB? If so, read from DB.
- // for (KVDevice d : KVDevice.getAllDevices()) {
- // DeviceEvent devEvent = new DeviceEvent( MACAddress.valueOf(d.getMac()) );
- // for (byte[] portId : d.getAllPortIds() ) {
- // devEvent.addAttachmentPoint( new SwitchPort( KVPort.getDpidFromKey(portId), KVPort.getNumberFromKey(portId) ));
- // }
- // }
+ for (KVDevice d : KVDevice.getAllDevices()) {
+ DeviceEvent devEvent = new DeviceEvent(MACAddress.valueOf(d.getMac()));
+ for (byte[] portId : d.getAllPortIds()) {
+ devEvent.addAttachmentPoint(new SwitchPort(KVPort.getDpidFromKey(portId), KVPort.getNumberFromKey(portId)));
+ }
+ }
for (KVLink l : KVLink.getAllLinks()) {
LinkEvent linkEvent = new LinkEvent(l.getSrc().dpid,
diff --git a/src/main/protobuf/device.proto b/src/main/protobuf/device.proto
new file mode 100644
index 0000000..ef3b881
--- /dev/null
+++ b/src/main/protobuf/device.proto
@@ -0,0 +1,10 @@
+package device;
+
+option java_package = "net.onrc.onos.core.datastore.serializers";
+option java_outer_classname = "Device";
+
+message DeviceProperty {
+ required bytes mac = 1;
+ repeated bytes portIds = 2;
+ optional bytes value = 3;
+}