Refactor gRPC northbound device service

Change-Id: I2f15074ab086f9a5e3294b49e09976f0dd77f51e
diff --git a/incubator/protobuf/services/nb/src/main/proto/net/device/DeviceServiceNb.proto b/incubator/protobuf/services/nb/src/main/proto/net/device/DeviceServiceNb.proto
new file mode 100644
index 0000000..1b1dad5
--- /dev/null
+++ b/incubator/protobuf/services/nb/src/main/proto/net/device/DeviceServiceNb.proto
@@ -0,0 +1,133 @@
+syntax="proto3";
+option java_package = "org.onosproject.grpc.nb.net.device";
+
+package nb.net.device;
+
+import "net/DeviceProto.proto";
+import "net/device/DeviceEnumsProto.proto";
+import "net/device/PortStatisticsProto.proto";
+import "net/PortProto.proto";
+import "net/ConnectPointProto.proto";
+
+message getDeviceCountRequest {
+}
+
+message getDeviceCountReply {
+    int32 device_count = 1;
+}
+
+message getDevicesRequest {
+}
+
+message getDevicesReply {
+    repeated .net.DeviceProto device = 1;
+}
+
+message getAvailableDevicesReply {
+    repeated .net.DeviceProto device = 1;
+}
+
+message getAvailableDevicesRequest {
+    .net.device.DeviceTypeProto type = 1;
+}
+
+message getDeviceRequest {
+    string device_id = 1;
+}
+
+message getDeviceReply {
+    .net.DeviceProto device = 1;
+}
+
+message getRoleRequest {
+    string device_id = 1;
+}
+
+message getRoleReply {
+    .net.device.MastershipRoleProto role = 1;
+}
+
+message getPortsRequest {
+    string device_id = 1;
+}
+
+message getPortsReply {
+    repeated .net.PortProto port = 1;
+}
+
+message getPortStatisticsRequest {
+    string device_id = 1;
+}
+
+message getPortStatisticsReply {
+    repeated .net.device.PortStatisticsProto port_statistics = 1;
+}
+
+message getPortDeltaStatisticsRequest {
+    string device_id = 1;
+}
+
+message getPortDeltaStatisticsReply {
+    repeated .net.device.PortStatisticsProto port_statistics = 1;
+}
+
+message getStatisticsForPortRequest {
+    string device_id = 1;
+    uint64 port_number = 2;
+}
+
+message getStatisticsForPortReply {
+    .net.device.PortStatisticsProto port_statistics = 1;
+}
+
+message getDeltaStatisticsForPortRequest {
+    string device_id = 1;
+    uint64 port_number = 2;
+}
+
+message getDeltaStatisticsForPortReply {
+    .net.device.PortStatisticsProto port_statistics = 1;
+}
+
+message getPortRequest {
+    .net.ConnectPointProto connect_point = 1;
+}
+
+message getPortReply {
+    .net.PortProto port = 1;
+}
+
+message isAvailableRequest {
+    string device_id = 1;
+}
+
+message isAvailableReply {
+    bool is_available = 1;
+}
+
+message localStatusRequest {
+    string device_id = 1;
+}
+
+message localStatusReply {
+    string status = 1;
+}
+
+service DeviceService {
+    rpc getDeviceCount(getDeviceCountRequest) returns (getDeviceCountReply) {}
+    rpc getDevices(getDevicesRequest) returns (getDevicesReply) {}
+    rpc getAvailableDevices(getAvailableDevicesRequest) returns (getAvailableDevicesReply) {}
+    rpc getDevice(getDeviceRequest) returns (getDeviceReply) {}
+    rpc getRole(getRoleRequest) returns (getRoleReply) {}
+    rpc getPorts(getPortsRequest) returns (getPortsReply) {}
+    rpc getPortStatistics(getPortStatisticsRequest) returns (getPortStatisticsReply) {}
+    rpc getPortDeltaStatistics(getPortDeltaStatisticsRequest)
+    returns (getPortDeltaStatisticsReply) {}
+    rpc getStatisticsForPort(getStatisticsForPortRequest)
+    returns (getStatisticsForPortReply) {}
+    rpc getDeltaStatisticsForPort(getDeltaStatisticsForPortRequest)
+    returns (getDeltaStatisticsForPortReply) {}
+    rpc getPort(getPortRequest) returns (getPortReply) {}
+    rpc isAvailable(isAvailableRequest) returns (isAvailableReply) {}
+    rpc localStatus(localStatusRequest) returns (localStatusReply) {}
+}
\ No newline at end of file