kafka-integration app has been fixed and built using bazel
Change-Id: Ibbb57cac83983a030cf6e267906415fa1d002d23
diff --git a/incubator/protobuf/models/proto/BUILD b/incubator/protobuf/models/proto/BUILD
new file mode 100644
index 0000000..e0d5c37
--- /dev/null
+++ b/incubator/protobuf/models/proto/BUILD
@@ -0,0 +1,495 @@
+load("//tools/build/bazel:osgi_java_library.bzl", "osgi_proto_jar")
+
+PROTO_SOURCE_ROOT = "incubator/protobuf/models/proto"
+
+osgi_proto_jar(
+ proto_libs = [
+ ":ApplicationsEnums_proto",
+ ":ConfigPropertyEnums_proto",
+ ":ConfigProperty_proto",
+ ":NodeId_proto",
+ ":RoleInfo_proto",
+ ":ApplicationId_proto",
+ ":ApplicationProto_proto",
+ ":Version_proto",
+ ":DeviceDescription_proto",
+ ":DeviceEnums_proto",
+ ":DeviceEvent_proto",
+ ":PortDescription_proto",
+ ":PortEnums_proto",
+ ":PortStatistics_proto",
+ ":Criterion_proto",
+ ":Instruction_proto",
+ ":Instructions_proto",
+ ":FlowEntryEnums_proto",
+ ":FlowEntry_proto",
+ ":FlowRuleEnums_proto",
+ ":FlowRule_proto",
+ ":TraficSelector_proto",
+ ":TrafficTreatment_proto",
+ ":HostDescription_proto",
+ ":HostEnums_proto",
+ ":HostEvent_proto",
+ ":LinkDescription_proto",
+ ":LinkEnums_proto",
+ ":LinkEvent_proto",
+ ":BandEnums_proto",
+ ":Band_proto",
+ ":MeterEnums_proto",
+ ":MeterEvent_proto",
+ ":Meter_proto",
+ ":MeterRequest_proto",
+ ":OutboundPacket_proto",
+ ":PacketEnums_proto",
+ ":PacketEvent_proto",
+ ":PacketProcessorEntry_proto",
+ ":PacketProcessor_proto",
+ ":PacketRequest_proto",
+ ":RegionEnums_proto",
+ ":ConnectPoint_proto",
+ ":Device_proto",
+ ":DisjointPath_proto",
+ ":HostId_proto",
+ ":HostLocation_proto",
+ ":Host_proto",
+ ":Link_proto",
+ ":MastershipRole_proto",
+ ":Path_proto",
+ ":Port_proto",
+ ":ProviderId_proto",
+ ":Region_proto",
+ ":Permission_proto",
+ ],
+)
+
+### app ###
+proto_library(
+ name = "ApplicationsEnums_proto",
+ srcs = ["app/ApplicationEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+### cfg ###
+proto_library(
+ name = "ConfigPropertyEnums_proto",
+ srcs = ["cfg/ConfigPropertyEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "ConfigProperty_proto",
+ srcs = ["cfg/ConfigPropertyProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":ConfigPropertyEnums_proto"],
+)
+
+### cluster ###
+proto_library(
+ name = "NodeId_proto",
+ srcs = ["cluster/NodeIdProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "RoleInfo_proto",
+ srcs = ["cluster/RoleInfoProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":NodeId_proto"],
+)
+
+### core ###
+
+proto_library(
+ name = "ApplicationId_proto",
+ srcs = ["core/ApplicationIdProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "ApplicationProto_proto",
+ srcs = ["core/ApplicationProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":ApplicationId_proto",
+ ":ApplicationsEnums_proto",
+ ":Permission_proto",
+ ":Version_proto",
+ ],
+)
+
+proto_library(
+ name = "Version_proto",
+ srcs = ["core/VersionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+### net ###
+
+### device ###
+proto_library(
+ name = "DeviceDescription_proto",
+ srcs = ["net/device/DeviceDescriptionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":DeviceEnums_proto"],
+)
+
+proto_library(
+ name = "DeviceEnums_proto",
+ srcs = ["net/device/DeviceEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "DeviceEvent_proto",
+ srcs = ["net/device/DeviceEventProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":DeviceEnums_proto",
+ ":Device_proto",
+ ":Port_proto",
+ ],
+)
+
+proto_library(
+ name = "PortDescription_proto",
+ srcs = ["net/device/PortDescriptionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":PortEnums_proto"],
+)
+
+proto_library(
+ name = "PortEnums_proto",
+ srcs = ["net/device/PortEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "PortStatistics_proto",
+ srcs = ["net/device/PortStatisticsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+### flow ###
+## criteria ##
+proto_library(
+ name = "Criterion_proto",
+ srcs = ["net/flow/criteria/CriterionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+## instrcutions ##
+proto_library(
+ name = "Instruction_proto",
+ srcs = ["net/flow/instructions/InstructionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "Instructions_proto",
+ srcs = ["net/flow/instructions/InstructionsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "FlowEntryEnums_proto",
+ srcs = ["net/flow/FlowEntryEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "FlowEntry_proto",
+ srcs = ["net/flow/FlowEntryProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = ["FlowEntryEnums_proto"],
+)
+
+proto_library(
+ name = "FlowRuleEnums_proto",
+ srcs = ["net/flow/FlowRuleEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "FlowRule_proto",
+ srcs = ["net/flow/FlowRuleProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":FlowRuleEnums_proto",
+ ":TrafficTreatment_proto",
+ ":TraficSelector_proto",
+ ],
+)
+
+proto_library(
+ name = "TraficSelector_proto",
+ srcs = ["net/flow/TrafficSelectorProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":Criterion_proto"],
+)
+
+proto_library(
+ name = "TrafficTreatment_proto",
+ srcs = ["net/flow/TrafficTreatmentProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ "Instruction_proto",
+ ":Instructions_proto",
+ ],
+)
+
+#### host ####
+
+proto_library(
+ name = "HostDescription_proto",
+ srcs = ["net/host/HostDescriptionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":HostLocation_proto"],
+)
+
+proto_library(
+ name = "HostEnums_proto",
+ srcs = ["net/host/HostEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "HostEvent_proto",
+ srcs = ["net/host/HostEventProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":HostEnums_proto",
+ ":Host_proto",
+ ],
+)
+
+#### link ####
+
+proto_library(
+ name = "LinkDescription_proto",
+ srcs = ["net/link/LinkDescriptionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":ConnectPoint_proto",
+ ":LinkEnums_proto",
+ ],
+)
+
+proto_library(
+ name = "LinkEnums_proto",
+ srcs = ["net/link/LinkEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "LinkEvent_proto",
+ srcs = ["net/link/LinkEventProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":LinkEnums_proto",
+ ":Link_proto",
+ ],
+)
+
+### meter ####
+
+proto_library(
+ name = "BandEnums_proto",
+ srcs = ["net/meter/BandEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "Band_proto",
+ srcs = ["net/meter/BandProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":BandEnums_proto"],
+)
+
+proto_library(
+ name = "MeterEnums_proto",
+ srcs = ["net/meter/MeterEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "MeterEvent_proto",
+ srcs = ["net/meter/MeterEventProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":MeterEnums_proto",
+ ":Meter_proto",
+ ],
+)
+
+proto_library(
+ name = "Meter_proto",
+ srcs = ["net/meter/MeterProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ "MeterEnums_proto",
+ ":ApplicationId_proto",
+ ":Band_proto",
+ ],
+)
+
+proto_library(
+ name = "MeterRequest_proto",
+ srcs = ["net/meter/MeterRequestProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":ApplicationId_proto",
+ ":Band_proto",
+ ":MeterEnums_proto",
+ ],
+)
+
+### packet ####
+
+proto_library(
+ name = "OutboundPacket_proto",
+ srcs = ["net/packet/OutboundPacketProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":TrafficTreatment_proto"],
+)
+
+proto_library(
+ name = "PacketEnums_proto",
+ srcs = ["net/packet/PacketEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "PacketEvent_proto",
+ srcs = ["net/packet/PacketEventProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":OutboundPacket_proto",
+ ":PacketEnums_proto",
+ ],
+)
+
+proto_library(
+ name = "PacketProcessorEntry_proto",
+ srcs = ["net/packet/PacketProcessorEntryProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":PacketProcessor_proto"],
+)
+
+proto_library(
+ name = "PacketProcessor_proto",
+ srcs = ["net/packet/PacketProcessorProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "PacketRequest_proto",
+ srcs = ["net/packet/PacketRequestProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":ApplicationId_proto",
+ ":NodeId_proto",
+ ":TraficSelector_proto",
+ ],
+)
+
+#### region ####
+
+proto_library(
+ name = "RegionEnums_proto",
+ srcs = ["net/region/RegionEnumsProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "ConnectPoint_proto",
+ srcs = ["net/ConnectPointProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "Device_proto",
+ srcs = ["net/DeviceProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":DeviceEnums_proto"],
+)
+
+proto_library(
+ name = "DisjointPath_proto",
+ srcs = ["net/DisjointPathProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":Path_proto"],
+)
+
+proto_library(
+ name = "HostId_proto",
+ srcs = ["net/HostIdProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "HostLocation_proto",
+ srcs = ["net/HostLocationProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":ConnectPoint_proto"],
+)
+
+proto_library(
+ name = "Host_proto",
+ srcs = ["net/HostProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":HostId_proto",
+ ":HostLocation_proto",
+ ":ProviderId_proto",
+ ],
+)
+
+proto_library(
+ name = "Link_proto",
+ srcs = ["net/LinkProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [
+ ":ConnectPoint_proto",
+ ":LinkEnums_proto",
+ ":ProviderId_proto",
+ ],
+)
+
+proto_library(
+ name = "MastershipRole_proto",
+ srcs = ["net/MastershipRoleProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "Path_proto",
+ srcs = ["net/PathProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":Link_proto"],
+)
+
+proto_library(
+ name = "Port_proto",
+ srcs = ["net/PortProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":PortEnums_proto"],
+)
+
+proto_library(
+ name = "ProviderId_proto",
+ srcs = ["net/ProviderIdProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
+
+proto_library(
+ name = "Region_proto",
+ srcs = ["net/RegionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+ deps = [":RegionEnums_proto"],
+)
+
+proto_library(
+ name = "Permission_proto",
+ srcs = ["security/PermissionProto.proto"],
+ proto_source_root = PROTO_SOURCE_ROOT,
+)
diff --git a/incubator/protobuf/models/proto/app/ApplicationEnumsProto.proto b/incubator/protobuf/models/proto/app/ApplicationEnumsProto.proto
new file mode 100644
index 0000000..2a1a912
--- /dev/null
+++ b/incubator/protobuf/models/proto/app/ApplicationEnumsProto.proto
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.app.models";
+
+package app;
+
+enum ApplicationStateProto {
+ // Indicates that application has been installed, but is not running.
+ INSTALLED = 0;
+ // Indicates that application is active.
+ ACTIVE = 1;
+}
+
+enum ApplicationRoleProto {
+ // Indicates that an application has an ADMIN role.
+ ADMIN = 0;
+ // Indicates that an application has a USER role.
+ USER = 1;
+ // Indicates that an application role has not been specified.
+ UNSPECIFIED = 2;
+
+ // More useful roles may be defined...
+}
diff --git a/incubator/protobuf/models/proto/cfg/ConfigPropertyEnumsProto.proto b/incubator/protobuf/models/proto/cfg/ConfigPropertyEnumsProto.proto
new file mode 100644
index 0000000..00204e7
--- /dev/null
+++ b/incubator/protobuf/models/proto/cfg/ConfigPropertyEnumsProto.proto
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.cfg.models";
+
+package cfg;
+
+enum ConfigPropertyTypeProto {
+ STRING = 0;
+ BYTE = 1;
+ INTEGER = 2;
+ LONG = 3;
+ FLOAT = 4;
+ DOUBLE = 5;
+ BOOLEAN = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/cfg/ConfigPropertyProto.proto b/incubator/protobuf/models/proto/cfg/ConfigPropertyProto.proto
new file mode 100644
index 0000000..d3ae6ac
--- /dev/null
+++ b/incubator/protobuf/models/proto/cfg/ConfigPropertyProto.proto
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.cfg.models";
+
+package cfg;
+
+import "cfg/ConfigPropertyEnumsProto.proto";
+
+// Corresponds to org.onosproject.cfg.ConfigProperty.
+message ConfigPropertyProto {
+ string name = 1;
+ cfg.ConfigPropertyTypeProto type = 2;
+ string value = 3;
+ string default_value = 4;
+ string description = 5;
+ bool is_set = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/cluster/NodeIdProto.proto b/incubator/protobuf/models/proto/cluster/NodeIdProto.proto
new file mode 100644
index 0000000..48d4494
--- /dev/null
+++ b/incubator/protobuf/models/proto/cluster/NodeIdProto.proto
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.cluster.models";
+
+package cluster;
+
+message NodeIdProto {
+ string node_id = 1;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/cluster/RoleInfoProto.proto b/incubator/protobuf/models/proto/cluster/RoleInfoProto.proto
new file mode 100644
index 0000000..1ede9ae
--- /dev/null
+++ b/incubator/protobuf/models/proto/cluster/RoleInfoProto.proto
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.cluster.models";
+
+import "cluster/NodeIdProto.proto";
+
+package cluster;
+
+message RoleInfoProto {
+ cluster.NodeIdProto master = 1;
+ repeated cluster.NodeIdProto backups = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/core/ApplicationIdProto.proto b/incubator/protobuf/models/proto/core/ApplicationIdProto.proto
new file mode 100644
index 0000000..59dacc8
--- /dev/null
+++ b/incubator/protobuf/models/proto/core/ApplicationIdProto.proto
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.core.models";
+
+package core;
+
+// Corresponds to org.onosproject.core.ApplicationId.
+message ApplicationIdProto {
+ uint32 id = 1;
+ string name = 2;
+}
diff --git a/incubator/protobuf/models/proto/core/ApplicationProto.proto b/incubator/protobuf/models/proto/core/ApplicationProto.proto
new file mode 100644
index 0000000..4601e3b
--- /dev/null
+++ b/incubator/protobuf/models/proto/core/ApplicationProto.proto
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.core.models";
+
+package core;
+
+import "core/ApplicationIdProto.proto";
+import "app/ApplicationEnumsProto.proto";
+import "security/PermissionProto.proto";
+import "core/VersionProto.proto";
+
+// Corresponds to org.onosproject.core.Application.
+message ApplicationProto {
+ core.ApplicationIdProto app_id = 1;
+ core.VersionProto version = 2;
+ string title = 3;
+ string description = 4;
+ string category = 5;
+ string url = 6;
+ string readme = 7;
+
+ // tag id 8 is reserved for app icon
+ reserved 8;
+
+ string origin = 9;
+ app.ApplicationRoleProto role = 10;
+ repeated security.PermissionProto permissions = 11;
+
+ // tag id 12 is reserved for features repo
+ // optional type will be added later
+ reserved 12;
+ repeated string features = 13;
+ repeated string required_apps = 14;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/core/VersionProto.proto b/incubator/protobuf/models/proto/core/VersionProto.proto
new file mode 100644
index 0000000..e1458a9
--- /dev/null
+++ b/incubator/protobuf/models/proto/core/VersionProto.proto
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.core.models";
+
+package core;
+
+// Corresponds to org.onosproject.core.
+message VersionProto {
+ int32 major = 1;
+ int32 minor = 2;
+ string patch = 3;
+ string build = 4;
+}
diff --git a/incubator/protobuf/models/proto/net/ConnectPointProto.proto b/incubator/protobuf/models/proto/net/ConnectPointProto.proto
new file mode 100644
index 0000000..9607b7e
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/ConnectPointProto.proto
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+message ConnectPointProto {
+ oneof element_id {
+ // DeviceID as String DeviceId#toString
+ string device_id = 1;
+ string host_id = 3;
+ string ip_element_id = 4;
+ }
+ // PortNumber as String PortNumber#toString
+ string port_number = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/DeviceProto.proto b/incubator/protobuf/models/proto/net/DeviceProto.proto
new file mode 100644
index 0000000..9726d84
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/DeviceProto.proto
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+import "net/device/DeviceEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.Device.
+message DeviceProto {
+ string device_id = 1;
+ net.device.DeviceTypeProto type = 2;
+ string manufacturer = 3;
+ string hw_version = 4;
+ string sw_version = 5;
+ string serial_number = 6;
+ string chassis_id = 7;
+ map<string, string> annotations = 8;
+}
diff --git a/incubator/protobuf/models/proto/net/DisjointPathProto.proto b/incubator/protobuf/models/proto/net/DisjointPathProto.proto
new file mode 100644
index 0000000..e80d4ec
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/DisjointPathProto.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+import "net/PathProto.proto";
+
+// Corresponds to org.onosproject.net.DisjointPath.
+message DisjointPathProto {
+ net.PathProto primary = 1;
+ net.PathProto backup = 2;
+ map<string, string> annotations = 3;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/HostIdProto.proto b/incubator/protobuf/models/proto/net/HostIdProto.proto
new file mode 100644
index 0000000..a0aae4c
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/HostIdProto.proto
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+// Corresponds to org.onosproject.net.HostId.
+message HostIdProto {
+ string mac = 1;
+ uint32 vlan_id = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/HostLocationProto.proto b/incubator/protobuf/models/proto/net/HostLocationProto.proto
new file mode 100644
index 0000000..9e44eba
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/HostLocationProto.proto
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+import "net/ConnectPointProto.proto";
+
+package net;
+
+// Corresponds to org.onosproject.net.HostLocation.
+message HostLocationProto {
+ net.ConnectPointProto connect_point = 1;
+ uint64 time = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/HostProto.proto b/incubator/protobuf/models/proto/net/HostProto.proto
new file mode 100644
index 0000000..ba38fab
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/HostProto.proto
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+import "net/HostIdProto.proto";
+import "net/HostLocationProto.proto";
+import "net/ProviderIdProto.proto";
+
+package net;
+
+// Corresponds to org.onosproject.net.Host.
+message HostProto {
+ net.HostIdProto host_id = 1;
+ uint32 vlan = 2;
+ net.HostLocationProto location = 3;
+ repeated string ip_addresses = 4;
+ bool configured = 5;
+ net.ProviderIdProto provider_id = 6;
+ map<string, string> annotations = 7;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/LinkProto.proto b/incubator/protobuf/models/proto/net/LinkProto.proto
new file mode 100644
index 0000000..e5ce70a
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/LinkProto.proto
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+import "net/link/LinkEnumsProto.proto";
+import "net/ConnectPointProto.proto";
+import "net/ProviderIdProto.proto";
+
+// Corresponds to org.onosproject.net.Link.
+message LinkProto {
+ net.link.LinkStateProto state = 1;
+ net.ConnectPointProto src = 2;
+ net.ConnectPointProto dst = 3;
+ net.link.LinkTypeProto type = 4;
+ map<string, string> annotations = 5;
+ net.ProviderIdProto provider_id = 6;
+ bool isExpected = 7;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/MastershipRoleProto.proto b/incubator/protobuf/models/proto/net/MastershipRoleProto.proto
new file mode 100644
index 0000000..24508d5
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/MastershipRoleProto.proto
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+enum MastershipRoleProto {
+ NONE = 0;
+ MASTER = 1;
+ STANDBY = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/PathProto.proto b/incubator/protobuf/models/proto/net/PathProto.proto
new file mode 100644
index 0000000..02343ae
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/PathProto.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+import "net/LinkProto.proto";
+
+// Corresponds to org.onosproject.net.Path.
+message PathProto {
+ repeated net.LinkProto links = 1;
+ double weight = 2;
+ map<string, string> annotations = 3;
+}
diff --git a/incubator/protobuf/models/proto/net/PortProto.proto b/incubator/protobuf/models/proto/net/PortProto.proto
new file mode 100644
index 0000000..09282e3
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/PortProto.proto
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+import "net/device/PortEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.Port.
+message PortProto {
+ string port_number = 1;
+ bool is_enabled = 2;
+ net.device.PortTypeProto type = 3;
+ int64 port_speed = 4;
+ map<string, string> annotations = 5;
+}
+
diff --git a/incubator/protobuf/models/proto/net/ProviderIdProto.proto b/incubator/protobuf/models/proto/net/ProviderIdProto.proto
new file mode 100644
index 0000000..9f4e4cf
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/ProviderIdProto.proto
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+// Corresponds to org.onosproject.net.provider.ProviderId
+message ProviderIdProto {
+ string scheme = 1;
+ string id = 2;
+ bool ancillary = 3;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/RegionProto.proto b/incubator/protobuf/models/proto/net/RegionProto.proto
new file mode 100644
index 0000000..b760b6e
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/RegionProto.proto
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.models";
+
+package net;
+
+import "net/region/RegionEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.Region.
+
+message RegionProto {
+ string region_id = 1;
+ net.region.RegionTypeProto type = 2;
+ string name = 3;
+
+ // List<Set<NodeId>> masters();
+ // Since masters is a list of set of NodeIds,
+ // the following message is required.
+ message NodeIdSet {
+ repeated string node_id = 1;
+ }
+
+ repeated NodeIdSet masters = 4;
+ map<string, string> annotations = 5;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/device/DeviceDescriptionProto.proto b/incubator/protobuf/models/proto/net/device/DeviceDescriptionProto.proto
new file mode 100644
index 0000000..d2eb2c7
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/device/DeviceDescriptionProto.proto
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.device.models";
+
+package net.device;
+
+import "net/device/DeviceEnumsProto.proto";
+
+message DeviceDescriptionProto {
+ string device_uri = 1;
+ net.device.DeviceTypeProto type = 2;
+ string manufacturer = 3;
+ string hw_version = 4;
+ string sw_version = 5;
+ string serial_number = 6;
+ string chassis_id = 7;
+ map<string, string> annotations = 8;
+ bool is_default_available = 9;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/device/DeviceEnumsProto.proto b/incubator/protobuf/models/proto/net/device/DeviceEnumsProto.proto
new file mode 100644
index 0000000..e8713d3
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/device/DeviceEnumsProto.proto
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.device.models";
+
+package net.device;
+
+enum DeviceTypeProto {
+ OTHER = 0;
+ SWITCH = 1;
+ ROUTER = 2;
+ ROADM = 3;
+ OTN = 4;
+ ROADM_OTN = 5;
+ FIREWALL = 6;
+ BALANCER = 7;
+ IPS = 8;
+ IDS = 9;
+ CONTROLLER = 10;
+ VIRTUAL_DEVICE = 11;
+ FIBER_SWITCH = 12;
+ MICROWAVE = 13;
+}
+
+enum DeviceEventTypeProto {
+ DEVICE_ADDED = 0;
+ DEVICE_UPDATED = 1;
+ DEVICE_REMOVED = 2;
+ DEVICE_SUSPENDED = 3;
+ DEVICE_AVAILABILITY_CHANGED = 4;
+ PORT_ADDED = 5;
+ PORT_UPDATED = 6;
+ PORT_REMOVED = 7;
+ PORT_STATS_UPDATED = 8;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/device/DeviceEventProto.proto b/incubator/protobuf/models/proto/net/device/DeviceEventProto.proto
new file mode 100644
index 0000000..f973bcc
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/device/DeviceEventProto.proto
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.device.models";
+
+
+import "net/DeviceProto.proto";
+import "net/device/DeviceEnumsProto.proto";
+import "net/PortProto.proto";
+
+package net.device;
+
+// Corresponds to org.onosproject.net.device.DeviceEvent.
+message DeviceNotificationProto {
+ net.DeviceProto device = 1;
+ net.device.DeviceEventTypeProto device_event_type = 2;
+ net.PortProto port = 3;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/device/PortDescriptionProto.proto b/incubator/protobuf/models/proto/net/device/PortDescriptionProto.proto
new file mode 100644
index 0000000..52a6e23
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/device/PortDescriptionProto.proto
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.device.models";
+
+package net.device;
+
+import "net/device/PortEnumsProto.proto";
+
+message PortDescriptionProto {
+ // PortNumber as String PortNumber#toString
+ string port_number = 1;
+ bool is_enabled = 2;
+ net.device.PortTypeProto type = 3;
+ int64 port_speed = 4;
+ map<string, string> annotations = 8;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/device/PortEnumsProto.proto b/incubator/protobuf/models/proto/net/device/PortEnumsProto.proto
new file mode 100644
index 0000000..28757fc
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/device/PortEnumsProto.proto
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.device.models";
+
+package net.device;
+
+enum PortTypeProto {
+ // Signifies copper-based connectivity.
+ COPPER = 0;
+ // Signifies optical fiber-based connectivity.
+ FIBER = 1;
+ // Signifies optical fiber-based packet port.
+ PACKET = 2;
+ // Signifies optical fiber-based optical tributary port (called T-port).
+ //The signal from the client side will be formed into a ITU G.709 (OTN) frame.
+ ODUCLT = 3;
+ // Signifies optical fiber-based Line-side port (called L-port).
+ OCH = 4;
+ // Signifies optical fiber-based WDM port (called W-port).
+ //Optical Multiplexing Section (See ITU G.709).
+ OMS = 5;
+ // Signifies virtual port.
+ VIRTUAL_PORT = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/device/PortStatisticsProto.proto b/incubator/protobuf/models/proto/net/device/PortStatisticsProto.proto
new file mode 100644
index 0000000..af0b039
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/device/PortStatisticsProto.proto
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.device.models";
+
+package net.device;
+
+message PortStatisticsProto {
+ int32 port = 1;
+ int64 packets_received = 2;
+ int64 packets_sent = 3;
+ int64 bytes_received = 4;
+ int64 bytes_sent = 5;
+ int64 packets_rx_dropped = 6;
+ int64 packets_tx_dropped = 7;
+ int64 packets_rx_errors = 8;
+ int64 packets_tx_errors = 9;
+ int64 duration_sec = 10;
+ int64 duration_nano = 11;
+ bool is_zero = 12;
+ // TODO add all other fields
+}
diff --git a/incubator/protobuf/models/proto/net/flow/FlowEntryEnumsProto.proto b/incubator/protobuf/models/proto/net/flow/FlowEntryEnumsProto.proto
new file mode 100644
index 0000000..2bb6768
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/FlowEntryEnumsProto.proto
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.models";
+
+package net.flow;
+
+// Corresponds to org.onosproject.net.flow.FlowEntry.
+enum FlowEntryStateProto {
+
+ // Indicates that this rule has been submitted for addition.
+ // Not necessarily in the flow table.
+ PENDING_ADD = 0;
+
+ // Rule has been added which means it is in the flow table.
+ ADDED = 1;
+
+ // Flow has been marked for removal, might still be in flow table.
+ PENDING_REMOVE = 2;
+
+ // Flow has been removed from flow table and can be purged.
+ REMOVED = 3;
+
+ // Indicates that the installation of this flow has failed.
+ FAILED = 4;
+}
+
+enum FlowLiveTypeProto {
+
+ // Indicates that this rule has been submitted for addition immediately.
+ // Not necessarily collecting flow stats.
+ IMMEDIATE = 0;
+
+ // Indicates that this rule has been submitted for a short time.
+ // Collecting flow stats every SHORT interval, defined by the implementation.
+ SHORT = 1;
+
+ // Indicates that this rule has been submitted for a mid time.
+ // Collecting flow stats every MID interval, defined by the implementation.
+ MID = 2;
+
+ // Indicates that this rule has been submitted for a long time.
+ // Collecting flow stats every LONG interval, defined by the implementation.
+ LONG = 3;
+
+ // Indicates that this rule has been submitted for UNKNOWN or ERROR.
+ // Not necessarily collecting flow stats.
+ UNKNOWN = 4;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/flow/FlowEntryProto.proto b/incubator/protobuf/models/proto/net/flow/FlowEntryProto.proto
new file mode 100644
index 0000000..c28a624
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/FlowEntryProto.proto
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.models";
+
+package net.flow;
+
+import "net/flow/FlowEntryEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.flow.DefaultFlowEntry.
+message FlowEntryProto {
+ int64 life = 1;
+ int64 packets = 2;
+ int64 bytes = 3;
+ int64 last_seen = 4;
+ int32 err_type = 5;
+ int32 err_code = 6;
+
+ net.flow.FlowEntryStateProto state = 7;
+ net.flow.FlowLiveTypeProto live_type = 8;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/flow/FlowRuleEnumsProto.proto b/incubator/protobuf/models/proto/net/flow/FlowRuleEnumsProto.proto
new file mode 100644
index 0000000..269f429
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/FlowRuleEnumsProto.proto
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.models";
+
+package net.flow;
+
+// Corresponds to org.onosproject.net.flow.FlowRule enums.
+enum FlowRemoveReasonProto {
+ IDLE_TIMEOUT = 0;
+ HARD_TIMEOUT = 1;
+ DELETE = 2;
+ GROUP_DELETE = 3;
+ METER_DELETE = 4;
+ EVICTION = 5;
+ NO_REASON = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/flow/FlowRuleProto.proto b/incubator/protobuf/models/proto/net/flow/FlowRuleProto.proto
new file mode 100644
index 0000000..9bf615d
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/FlowRuleProto.proto
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.models";
+
+package net.flow;
+
+import "net/flow/TrafficSelectorProto.proto";
+import "net/flow/TrafficTreatmentProto.proto";
+import "net/flow/FlowRuleEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.flow.DefaultFlowRule.
+message FlowRuleProto {
+ int32 priority = 1;
+ int32 app_id = 2;
+ string device_id = 3;
+ int64 flow_id = 4;
+ int32 timeout = 5;
+ bool permanent = 6;
+ int32 table_id = 7;
+ string table_name = 8;
+
+ net.flow.TrafficSelectorProto selector = 9;
+ net.flow.TrafficTreatmentProto treatment = 10;
+ net.flow.FlowRemoveReasonProto reason = 11;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/flow/TrafficSelectorProto.proto b/incubator/protobuf/models/proto/net/flow/TrafficSelectorProto.proto
new file mode 100644
index 0000000..74a5bce
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/TrafficSelectorProto.proto
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.models";
+
+package net.flow;
+
+import "net/flow/criteria/CriterionProto.proto";
+
+// Corresponds to org.onosproject.net.flow.TrafficSelector.
+message TrafficSelectorProto {
+ repeated net.flow.criteria.CriterionProto criterion = 1;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/flow/TrafficTreatmentProto.proto b/incubator/protobuf/models/proto/net/flow/TrafficTreatmentProto.proto
new file mode 100644
index 0000000..428e218
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/TrafficTreatmentProto.proto
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.models";
+
+package net.flow;
+
+import "net/flow/instructions/InstructionsProto.proto";
+import "net/flow/instructions/InstructionProto.proto";
+
+// Corresponds to org.onosproject.net.flow.TrafficTreatment.
+message TrafficTreatmentProto {
+ repeated net.flow.instructions.InstructionProto deferred = 1;
+ repeated net.flow.instructions.InstructionProto immediate = 2;
+ repeated net.flow.instructions.InstructionProto all_instructions = 3;
+ net.flow.instructions.TableTypeTransitionProto table_transition = 4;
+ bool cleared_deferred = 5;
+ net.flow.instructions.MetadataInstructionProto write_metadata = 6;
+ net.flow.instructions.MetadataInstructionProto metered = 7;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/flow/criteria/CriterionProto.proto b/incubator/protobuf/models/proto/net/flow/criteria/CriterionProto.proto
new file mode 100644
index 0000000..cc26526
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/criteria/CriterionProto.proto
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.criteria.models";
+
+package net.flow.criteria;
+
+enum TypeProto {
+ IN_PORT = 0;
+ ETH_DST = 1;
+ ETH_SRC = 2;
+ ETH_TYPE = 3;
+ IPV4_SRC = 4;
+ IPV4_DST = 5;
+ UDP_SRC = 6;
+ UDP_DST = 7;
+ TCP_SRC = 8;
+ TCP_DST = 9;
+ VLAN_VID = 10;
+ ARP_OP = 11;
+ ARP_SPA = 12;
+ ARP_TPA = 13;
+ ARP_SHA = 14;
+ ARP_THA = 15;
+ IP_PROTO = 16;
+ ETH_DST_MASKED = 17;
+ ETH_SRC_MASKED = 18;
+ VLAN_PCP = 19;
+ INNER_VLAN_VID = 20;
+ INNER_VLAN_PCP = 21;
+ IP_DSCP = 22;
+ IP_ECN = 23;
+ IN_PHY_PORT = 24;
+ METADATA = 25;
+ TCP_SRC_MASKED = 26;
+ TCP_DST_MASKED = 27;
+ UDP_SRC_MASKED = 28;
+ UDP_DST_MASKED = 29;
+ SCTP_SRC = 30;
+ SCTP_SRC_MASKED = 31;
+ SCTP_DST = 32;
+ SCTP_DST_MASKED = 33;
+ ICMPV4_TYPE = 34;
+ ICMPV4_CODE = 35;
+ IPV6_SRC = 36;
+ IPV6_DST = 37;
+ IPV6_FLABEL = 38;
+ ICMPV6_TYPE = 39;
+ ICMPV6_CODE = 40;
+ IPV6_ND_TARGET = 41;
+ IPV6_ND_SLL = 42;
+ IPV6_ND_TLL = 43;
+ MPLS_LABEL = 44;
+ MPLS_TC = 45;
+ MPLS_BOS = 46;
+ PBB_ISID = 47;
+ TUNNEL_ID = 48;
+ IPV6_EXTHDR =49;
+ UNASSIGNED_40 = 50;
+ PBB_UCA = 51;
+ TCP_FLAGS = 52;
+ ACTSET_OUTPUT = 53;
+ PACKET_TYPE = 54;
+ OCH_SIGID = 55;
+ OCH_SIGTYPE = 56;
+ ODU_SIGID = 57;
+ ODU_SIGTYPE = 58;
+ PROTOCOL_INDEPENDENT = 59;
+ EXTENSION = 60;
+ DUMMY = 61;
+}
+
+message CriterionProto {
+ TypeProto type = 1;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/flow/instructions/InstructionProto.proto b/incubator/protobuf/models/proto/net/flow/instructions/InstructionProto.proto
new file mode 100644
index 0000000..472899f
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/instructions/InstructionProto.proto
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.instructions.models";
+
+package net.flow.instructions;
+
+enum TypeProto {
+ NOACTION = 0;
+ OUTPUT = 1;
+ GROUP = 2;
+ QUEUE = 3;
+ METER = 4;
+ L0MODIFICATION = 5;
+ L1MODIFICATION = 6;
+ L2MODIFICATION = 7;
+ L3MODIFICATION = 8;
+ L4MODIFICATION = 9;
+ TABLE = 10;
+ METADATA = 11;
+ PROTOCOL_INDEPENDENT = 12;
+ EXTENSION = 13;
+}
+
+message InstructionProto {
+ TypeProto type = 1;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/flow/instructions/InstructionsProto.proto b/incubator/protobuf/models/proto/net/flow/instructions/InstructionsProto.proto
new file mode 100644
index 0000000..7491623
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/flow/instructions/InstructionsProto.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.flow.instructions.models";
+
+package net.flow.instructions;
+
+message TableTypeTransitionProto {
+ int32 table_id = 1;
+}
+
+message MetadataInstructionProto {
+ int64 meta_data = 1;
+ int64 meta_data_mask = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/host/HostDescriptionProto.proto b/incubator/protobuf/models/proto/net/host/HostDescriptionProto.proto
new file mode 100644
index 0000000..733fd8c
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/host/HostDescriptionProto.proto
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.host.models";
+
+package net.host;
+
+import "net/HostLocationProto.proto";
+
+// Corresponds to org.onosproject.net.host.HostDescription.
+message HostDescription {
+ string hw_address = 1;
+ uint32 vlan = 2;
+ net.HostLocationProto location = 3;
+ repeated string ip_addresses = 4;
+ bool configured = 5;
+ map<string, string> annotations = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/host/HostEnumsProto.proto b/incubator/protobuf/models/proto/net/host/HostEnumsProto.proto
new file mode 100644
index 0000000..7d45f29
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/host/HostEnumsProto.proto
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.host.models";
+
+package net.host;
+
+enum HostEventTypeProto {
+ HOST_ADDED = 0;
+ HOST_REMOVED = 1;
+ HOST_UPDATED = 2;
+ HOST_MOVED = 3;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/host/HostEventProto.proto b/incubator/protobuf/models/proto/net/host/HostEventProto.proto
new file mode 100644
index 0000000..c88dc20
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/host/HostEventProto.proto
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.host.models";
+
+package net.host;
+
+import "net/HostProto.proto";
+import "net/host/HostEnumsProto.proto";
+
+
+// Corresponds to org.onosproject.net.device.HostEvent.
+message HostNotificationProto {
+ net.HostProto host = 1;
+ net.host.HostEventTypeProto hostEventType = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/link/LinkDescriptionProto.proto b/incubator/protobuf/models/proto/net/link/LinkDescriptionProto.proto
new file mode 100644
index 0000000..9519f3c
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/link/LinkDescriptionProto.proto
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.link.models";
+
+package net.link;
+
+import "net/ConnectPointProto.proto";
+import "net/link/LinkEnumsProto.proto";
+
+message LinkDescriptionProto {
+ net.ConnectPointProto src = 1;
+ net.ConnectPointProto dst = 2;
+ net.link.LinkTypeProto type = 3;
+ map<string, string> annotations = 4;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/link/LinkEnumsProto.proto b/incubator/protobuf/models/proto/net/link/LinkEnumsProto.proto
new file mode 100644
index 0000000..ea76f9e
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/link/LinkEnumsProto.proto
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.link.models";
+
+package net.link;
+
+enum LinkTypeProto {
+ // Signifies that this is a direct single-segment link.
+ DIRECT = 0;
+
+ // Signifies that this link is potentially comprised from multiple
+ // underlying segments or hops, and as such should be used to tag
+ // links traversing optical paths, tunnels or intervening 'dark'
+ // switches.
+ INDIRECT = 1;
+
+ // Signifies that this link is an edge, i.e. host link.
+ EDGE = 2;
+
+ // Signifies that this link represents a logical link backed by
+ // some form of a tunnel, e.g., GRE, MPLS, ODUk, OCH.
+ TUNNEL = 3;
+
+ // Signifies that this link is realized by fiber (either single channel or WDM).
+ OPTICAL = 4;
+
+ // Signifies that this link is a virtual link or a pseudo-wire.
+ VIRTUAL = 5;
+}
+
+enum LinkStateProto {
+ ACTIVE = 0;
+ INACTIVE = 1;
+}
+
+// Link Event Types
+enum LinkEventTypeProto {
+ LINK_ADDED = 0;
+ LINK_UPDATED = 1;
+ LINK_REMOVED = 2;
+}
diff --git a/incubator/protobuf/models/proto/net/link/LinkEventProto.proto b/incubator/protobuf/models/proto/net/link/LinkEventProto.proto
new file mode 100644
index 0000000..3772109
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/link/LinkEventProto.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.link.models";
+
+package net.link;
+
+import "net/LinkProto.proto";
+import "net/link/LinkEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.link.LinkEvent.
+message LinkNotificationProto {
+ net.link.LinkEventTypeProto link_event_type = 1;
+ net.LinkProto link = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/meter/BandEnumsProto.proto b/incubator/protobuf/models/proto/net/meter/BandEnumsProto.proto
new file mode 100644
index 0000000..48dbe61
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/meter/BandEnumsProto.proto
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+/**
+* Specifies the type of band.
+*/
+enum BandTypeProto {
+ /**
+ * Simple rate limiter which drops packets
+ * when the rate is exceeded.
+ */
+ DROP = 0;
+
+ /**
+ * defines a simple DiffServ policer that remark
+ * the drop precedence of the DSCP field in the
+ * IP header of the packets that exceed the band
+ * rate value.
+ */
+ REMARK = 1;
+
+ /**
+ * defines an experimental meter band.
+ */
+ EXPERIMENTAL = 2;
+}
diff --git a/incubator/protobuf/models/proto/net/meter/BandProto.proto b/incubator/protobuf/models/proto/net/meter/BandProto.proto
new file mode 100644
index 0000000..4757c46
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/meter/BandProto.proto
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+import "net/meter/BandEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.meter.Band.
+message BandProto {
+ uint64 rate = 1;
+ uint64 burst = 2;
+ uint32 drop_precedence = 3;
+ BandTypeProto type = 4;
+ uint64 packets = 5;
+ uint64 bytes = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/meter/MeterEnumsProto.proto b/incubator/protobuf/models/proto/net/meter/MeterEnumsProto.proto
new file mode 100644
index 0000000..1b0bbf5
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/meter/MeterEnumsProto.proto
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+enum MeterUnitProto {
+ /**
+ * Packets per second.
+ */
+ PKTS_PER_SEC = 0;
+
+ /**
+ * Kilo bits per second.
+ */
+ KB_PER_SEC = 1;
+}
+
+enum MeterStateProto {
+ /**
+ * The meter is in the process of being added.
+ */
+ PENDING_ADD = 0;
+
+ /**
+ * THe meter has been added.
+ */
+ ADDED = 1;
+
+ /**
+ * The meter is in the process of being removed.
+ */
+ PENDING_REMOVE = 2;
+
+ /**
+ * The meter has been removed.
+ */
+ REMOVED = 3;
+}
+
+enum MeterRequestTypeProto {
+ ADD = 0;
+ MODIFY = 1;
+ REMOVE = 2;
+}
+
+enum MeterEventTypeProto {
+ /**
+ * A meter addition was requested.
+ */
+ METER_ADD_REQ = 0;
+
+ /**
+ * A meter removal was requested.
+ */
+ METER_REM_REQ = 1;
+
+ /**
+ * A meter was finally added to device.
+ */
+ METER_ADDED = 2;
+
+ /**
+ * A meter was finally removed from device.
+ */
+ METER_REMOVED = 3;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/meter/MeterEventProto.proto b/incubator/protobuf/models/proto/net/meter/MeterEventProto.proto
new file mode 100644
index 0000000..898692a
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/meter/MeterEventProto.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+import "net/meter/MeterEnumsProto.proto";
+import "net/meter/MeterProto.proto";
+
+// Corresponds to org.onosproject.net.meter.MeterEvent.
+message MeterNotificationProto {
+ MeterEventTypeProto type = 1;
+ MeterProto meter = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/meter/MeterProto.proto b/incubator/protobuf/models/proto/net/meter/MeterProto.proto
new file mode 100644
index 0000000..9478394
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/meter/MeterProto.proto
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+import "net/meter/BandProto.proto";
+import "net/meter/MeterEnumsProto.proto";
+import "core/ApplicationIdProto.proto";
+
+message MeterProto {
+ string device_id = 1;
+ uint64 meter_id = 2;
+ core.ApplicationIdProto application_id = 3;
+ MeterUnitProto unit = 4;
+ bool is_burst = 5;
+ repeated BandProto bands = 6;
+ MeterStateProto state = 7;
+ uint64 life = 8;
+ uint64 reference_count = 9;
+ uint64 packets_seen = 10;
+ uint64 bytes_seen = 11;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/meter/MeterRequestProto.proto b/incubator/protobuf/models/proto/net/meter/MeterRequestProto.proto
new file mode 100644
index 0000000..be60f11
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/meter/MeterRequestProto.proto
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+import "net/meter/BandProto.proto";
+import "net/meter/MeterEnumsProto.proto";
+import "core/ApplicationIdProto.proto";
+
+message MeterRequestProto {
+ string device_id = 1;
+ core.ApplicationIdProto application_id = 2;
+ MeterUnitProto unit = 3;
+ bool is_burst = 4;
+ repeated BandProto bands = 5;
+ MeterRequestTypeProto type = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/packet/OutboundPacketProto.proto b/incubator/protobuf/models/proto/net/packet/OutboundPacketProto.proto
new file mode 100644
index 0000000..9d943e4
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/packet/OutboundPacketProto.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.packet.models";
+
+package net.packet;
+
+import "net/flow/TrafficTreatmentProto.proto";
+
+// Corresponds to org.onosproject.net.packet.OutboundPacket.
+message OutboundPacketProto {
+ string device_id = 1;
+ net.flow.TrafficTreatmentProto treatment = 2;
+ bytes data = 3;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/packet/PacketEnumsProto.proto b/incubator/protobuf/models/proto/net/packet/PacketEnumsProto.proto
new file mode 100644
index 0000000..db6e5ca
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/packet/PacketEnumsProto.proto
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.packet.models";
+
+package net.packet;
+
+enum PacketEventTypeProto {
+ EMIT = 0;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/packet/PacketEventProto.proto b/incubator/protobuf/models/proto/net/packet/PacketEventProto.proto
new file mode 100644
index 0000000..07d9580
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/packet/PacketEventProto.proto
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.packet.models";
+
+package net.packet;
+
+import "net/packet/OutboundPacketProto.proto";
+import "net/packet/PacketEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.packet.PacketEvent.
+message PacketNotificationProto {
+ net.packet.OutboundPacketProto outbound_packet = 1;
+ net.packet.PacketEventTypeProto packet_event_type = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/packet/PacketProcessorEntryProto.proto b/incubator/protobuf/models/proto/net/packet/PacketProcessorEntryProto.proto
new file mode 100644
index 0000000..b0b90b2
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/packet/PacketProcessorEntryProto.proto
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.packet.models";
+
+package net.packet;
+
+import "net/packet/PacketProcessorProto.proto";
+
+// Corresponds to org.onosproject.net.packet.PacketProcessorEntry.
+message PacketProcessorEntryProto {
+ net.packet.PacketProcessorProto packet_processor = 1;
+ int32 priority = 2;
+ int64 invocations = 3;
+ int64 total_nanos = 4;
+ int64 average_nanos = 5;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/packet/PacketProcessorProto.proto b/incubator/protobuf/models/proto/net/packet/PacketProcessorProto.proto
new file mode 100644
index 0000000..8a71674
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/packet/PacketProcessorProto.proto
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.packet.models";
+
+package net.packet;
+
+// Corresponds to org.onosproject.net.packet.PacketProcessor.
+message PacketProcessorProto {
+ int32 priority = 1;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/packet/PacketRequestProto.proto b/incubator/protobuf/models/proto/net/packet/PacketRequestProto.proto
new file mode 100644
index 0000000..0b61a66
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/packet/PacketRequestProto.proto
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.packet.models";
+
+package net.packet;
+
+import "net/flow/TrafficSelectorProto.proto";
+import "cluster/NodeIdProto.proto";
+import "core/ApplicationIdProto.proto";
+
+// Corresponds to org.onosproject.net.packet.PacketRequest.
+message PacketRequestProto {
+ net.flow.TrafficSelectorProto traffic_selector = 1;
+ int32 priority = 2;
+ core.ApplicationIdProto application_id = 3;
+ cluster.NodeIdProto node_id = 4;
+ string device_id = 5;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/net/region/RegionEnumsProto.proto b/incubator/protobuf/models/proto/net/region/RegionEnumsProto.proto
new file mode 100644
index 0000000..67bf53f
--- /dev/null
+++ b/incubator/protobuf/models/proto/net/region/RegionEnumsProto.proto
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.region.models";
+
+package net.region;
+
+enum RegionTypeProto {
+ /**
+ * Region represents an entire continent.
+ */
+ CONTINENT = 0;
+
+ /**
+ * Region represents an entire country.
+ */
+ COUNTRY = 1;
+
+ /**
+ * Region represents a metropolitan area.
+ */
+ METRO = 2;
+
+ /**
+ * Region represents a campus.
+ */
+ CAMPUS = 3;
+
+ /**
+ * Region represents a building.
+ */
+ BUILDING = 4;
+
+ /**
+ * Region represents a data center.
+ */
+ DATA_CENTER = 5;
+
+ /**
+ * Region represents a building floor.
+ */
+ FLOOR = 6;
+
+ /**
+ * Region represents a room.
+ */
+ ROOM = 7;
+
+ /**
+ * Region represents a rack.
+ */
+ RACK = 8;
+
+ /**
+ * Region represents a logical grouping.
+ */
+ LOGICAL_GROUP = 9;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/proto/security/PermissionProto.proto b/incubator/protobuf/models/proto/security/PermissionProto.proto
new file mode 100644
index 0000000..e14af96
--- /dev/null
+++ b/incubator/protobuf/models/proto/security/PermissionProto.proto
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * 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.
+ */
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.security.models";
+
+package security;
+
+// Corresponds to org.onosproject.security.Permission.
+message PermissionProto {
+ string classname = 1;
+ string name = 2;
+ string actions = 3;
+}