diff --git a/incubator/protobuf/models/src/main/proto/net/flow/TrafficSelectorProto.proto b/incubator/protobuf/models/src/main/proto/net/flow/TrafficSelectorProto.proto
new file mode 100644
index 0000000..831f149
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/flow/TrafficSelectorProto.proto
@@ -0,0 +1,11 @@
+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/src/main/proto/net/flow/TrafficTreatmentProto.proto b/incubator/protobuf/models/src/main/proto/net/flow/TrafficTreatmentProto.proto
new file mode 100644
index 0000000..b2d6236
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/flow/TrafficTreatmentProto.proto
@@ -0,0 +1,18 @@
+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/src/main/proto/net/flow/criteria/CriterionProto.proto b/incubator/protobuf/models/src/main/proto/net/flow/criteria/CriterionProto.proto
new file mode 100644
index 0000000..cfbf896
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/flow/criteria/CriterionProto.proto
@@ -0,0 +1,73 @@
+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/src/main/proto/net/flow/instructions/InstructionProto.proto b/incubator/protobuf/models/src/main/proto/net/flow/instructions/InstructionProto.proto
new file mode 100644
index 0000000..095bd53
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/flow/instructions/InstructionProto.proto
@@ -0,0 +1,25 @@
+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/src/main/proto/net/flow/instructions/InstructionsProto.proto b/incubator/protobuf/models/src/main/proto/net/flow/instructions/InstructionsProto.proto
new file mode 100644
index 0000000..93c4089
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/flow/instructions/InstructionsProto.proto
@@ -0,0 +1,13 @@
+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/src/main/proto/net/packet/OutboundPacketProto.proto b/incubator/protobuf/models/src/main/proto/net/packet/OutboundPacketProto.proto
new file mode 100644
index 0000000..00e0bb9
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/packet/OutboundPacketProto.proto
@@ -0,0 +1,13 @@
+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/src/main/proto/net/packet/PacketEnumsProto.proto b/incubator/protobuf/models/src/main/proto/net/packet/PacketEnumsProto.proto
new file mode 100644
index 0000000..ce8352f
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/packet/PacketEnumsProto.proto
@@ -0,0 +1,8 @@
+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/src/main/proto/net/packet/PacketEventProto.proto b/incubator/protobuf/models/src/main/proto/net/packet/PacketEventProto.proto
new file mode 100644
index 0000000..f482780
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/packet/PacketEventProto.proto
@@ -0,0 +1,13 @@
+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/src/main/proto/net/packet/PacketProcessorEntryProto.proto b/incubator/protobuf/models/src/main/proto/net/packet/PacketProcessorEntryProto.proto
new file mode 100644
index 0000000..918e750
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/packet/PacketProcessorEntryProto.proto
@@ -0,0 +1,15 @@
+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/src/main/proto/net/packet/PacketProcessorProto.proto b/incubator/protobuf/models/src/main/proto/net/packet/PacketProcessorProto.proto
new file mode 100644
index 0000000..8cb4499
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/packet/PacketProcessorProto.proto
@@ -0,0 +1,9 @@
+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/src/main/proto/net/packet/PacketRequestProto.proto b/incubator/protobuf/models/src/main/proto/net/packet/PacketRequestProto.proto
new file mode 100644
index 0000000..9a0e491
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/packet/PacketRequestProto.proto
@@ -0,0 +1,17 @@
+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/services/nb/src/main/proto/net/packet/PacketServiceNb.proto b/incubator/protobuf/services/nb/src/main/proto/net/packet/PacketServiceNb.proto
new file mode 100644
index 0000000..26d6c90
--- /dev/null
+++ b/incubator/protobuf/services/nb/src/main/proto/net/packet/PacketServiceNb.proto
@@ -0,0 +1,76 @@
+syntax="proto3";
+option java_package = "org.onosproject.grpc.nb.net.packet";
+
+package nb.net.packet;
+
+import "net/packet/PacketRequestProto.proto";
+import "net/packet/PacketProcessorProto.proto";
+import "net/packet/PacketProcessorEntryProto.proto";
+import "net/packet/OutboundPacketProto.proto";
+import "core/ApplicationIdProto.proto";
+import "net/flow/TrafficSelectorProto.proto";
+import "net/flow/TrafficTreatmentProto.proto";
+
+message addProcessorRequest {
+    .net.packet.PacketProcessorProto packet_processor = 1;
+    int32 priority = 2;
+}
+
+message addProcessorReply {
+}
+
+message removeProcessorRequest {
+    .net.packet.PacketProcessorProto packet_processor = 1;
+}
+
+message removeProcessorReply {
+}
+
+message getProcessorsRequest {
+}
+
+message getProcessorsReply {
+    repeated .net.packet.PacketProcessorEntryProto packetProcessor_entry = 1;
+}
+
+message requestPacketsRequest {
+    .net.flow.TrafficSelectorProto traffic_selector = 1;
+    int32 priority = 2;
+    .core.ApplicationIdProto application_id = 3;
+}
+
+message requestPacketsReply {
+}
+
+message cancelPacketsRequest {
+    .net.flow.TrafficSelectorProto traffic_selector = 1;
+    int32 priority = 2;
+    .core.ApplicationIdProto application_id = 3;
+}
+
+message cancelPacketsReply {
+}
+
+message getRequestsRequest {
+}
+
+message getRequestsReply {
+    repeated .net.packet.PacketRequestProto packet_request = 1;
+}
+
+message emitRequest {
+    .net.packet.OutboundPacketProto outbound_packet = 1;
+}
+
+message emitReply {
+}
+
+service DeviceService {
+    rpc addProcessor(addProcessorRequest) returns (addProcessorReply) {}
+    rpc removeProcessor(removeProcessorRequest) returns (removeProcessorReply) {}
+    rpc getProcessors(getProcessorsRequest) returns (getProcessorsReply) {}
+    rpc requestPackets(requestPacketsRequest) returns (requestPacketsReply) {}
+    rpc cancelPackets(cancelPacketsRequest) returns (cancelPacketsReply) {}
+    rpc getRequests(getRequestsRequest) returns (getRequestsReply) {}
+    rpc emit(emitRequest) returns (emitReply) {}
+}
\ No newline at end of file
