VOL-291 : PON simulator refactoring for cluster integration

- Added ponsim build target in Makefile
- Added new option to vcore to select comm type with ponsim
- Modified all proto files to include destination go package

Amendments:

- Clean up based on review comments
- Properly close GRPC connections in ponsim_olt adapter
- Added voltha namespace to some k8s templates

Change-Id: I2f349fa7b3550a8a8cc8fc676cc896f33fbb9372
diff --git a/voltha/protos/adapter.proto b/voltha/protos/adapter.proto
index 4af54c3..0123418 100644
--- a/voltha/protos/adapter.proto
+++ b/voltha/protos/adapter.proto
@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/voltha";
+
 package voltha;
 
 import "google/protobuf/any.proto";
diff --git a/voltha/protos/bbf_fiber.proto b/voltha/protos/bbf_fiber.proto
index 65a3f78..c9ae26d 100644
--- a/voltha/protos/bbf_fiber.proto
+++ b/voltha/protos/bbf_fiber.proto
@@ -3,6 +3,9 @@
 */
 
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 import "bbf_fiber_base.proto";
 import "bbf_fiber_wavelength_profile_body.proto";
diff --git a/voltha/protos/bbf_fiber_base.proto b/voltha/protos/bbf_fiber_base.proto
index b7f7689..668a82a 100644
--- a/voltha/protos/bbf_fiber_base.proto
+++ b/voltha/protos/bbf_fiber_base.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 
 import public "meta.proto";
diff --git a/voltha/protos/bbf_fiber_channelgroup_body.proto b/voltha/protos/bbf_fiber_channelgroup_body.proto
index 400c2f2..425ea6f 100644
--- a/voltha/protos/bbf_fiber_channelgroup_body.proto
+++ b/voltha/protos/bbf_fiber_channelgroup_body.proto
@@ -1,6 +1,9 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
-import public "meta.proto";
+import "meta.proto";
 import "bbf_fiber_types.proto";
 
 message ChannelgroupConfigData {
diff --git a/voltha/protos/bbf_fiber_channelpair_body.proto b/voltha/protos/bbf_fiber_channelpair_body.proto
index 231cd85..b26bc71 100644
--- a/voltha/protos/bbf_fiber_channelpair_body.proto
+++ b/voltha/protos/bbf_fiber_channelpair_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 import "bbf_fiber_types.proto";
 
diff --git a/voltha/protos/bbf_fiber_channelpartition_body.proto b/voltha/protos/bbf_fiber_channelpartition_body.proto
index 58e8d93..01c3a11 100644
--- a/voltha/protos/bbf_fiber_channelpartition_body.proto
+++ b/voltha/protos/bbf_fiber_channelpartition_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 import "bbf_fiber_types.proto";
 
diff --git a/voltha/protos/bbf_fiber_channeltermination_body.proto b/voltha/protos/bbf_fiber_channeltermination_body.proto
index 892a612..8f4e9ca 100644
--- a/voltha/protos/bbf_fiber_channeltermination_body.proto
+++ b/voltha/protos/bbf_fiber_channeltermination_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 
 message ChannelterminationConfigData {
diff --git a/voltha/protos/bbf_fiber_gemport_body.proto b/voltha/protos/bbf_fiber_gemport_body.proto
index b08af06..fe0b9e2 100644
--- a/voltha/protos/bbf_fiber_gemport_body.proto
+++ b/voltha/protos/bbf_fiber_gemport_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 import "meta.proto";
 import "bbf_fiber_tcont_body.proto";
diff --git a/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto b/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto
index 525ce11..60b30f6 100644
--- a/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto
+++ b/voltha/protos/bbf_fiber_multicast_distribution_set_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 import "meta.proto";
 import "bbf_fiber_multicast_gemport_body.proto";
diff --git a/voltha/protos/bbf_fiber_multicast_gemport_body.proto b/voltha/protos/bbf_fiber_multicast_gemport_body.proto
index d8d01bc..1045448 100644
--- a/voltha/protos/bbf_fiber_multicast_gemport_body.proto
+++ b/voltha/protos/bbf_fiber_multicast_gemport_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 import "meta.proto";
 
diff --git a/voltha/protos/bbf_fiber_ontani_body.proto b/voltha/protos/bbf_fiber_ontani_body.proto
index b6025ea..31e6648 100644
--- a/voltha/protos/bbf_fiber_ontani_body.proto
+++ b/voltha/protos/bbf_fiber_ontani_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 
 message OntaniConfigData {
diff --git a/voltha/protos/bbf_fiber_tcont_body.proto b/voltha/protos/bbf_fiber_tcont_body.proto
index 2c24e32..922fc34 100644
--- a/voltha/protos/bbf_fiber_tcont_body.proto
+++ b/voltha/protos/bbf_fiber_tcont_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 import "meta.proto";
 import "bbf_fiber_traffic_descriptor_profile_body.proto";
diff --git a/voltha/protos/bbf_fiber_traffic_descriptor_profile_body.proto b/voltha/protos/bbf_fiber_traffic_descriptor_profile_body.proto
index aa51843..f9ac43d 100644
--- a/voltha/protos/bbf_fiber_traffic_descriptor_profile_body.proto
+++ b/voltha/protos/bbf_fiber_traffic_descriptor_profile_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 import "meta.proto";
 
diff --git a/voltha/protos/bbf_fiber_types.proto b/voltha/protos/bbf_fiber_types.proto
index 119ced0..d27400d 100644
--- a/voltha/protos/bbf_fiber_types.proto
+++ b/voltha/protos/bbf_fiber_types.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber_types;
 
 enum AuthMethodType
diff --git a/voltha/protos/bbf_fiber_v_enet_body.proto b/voltha/protos/bbf_fiber_v_enet_body.proto
index 4817b36..33da555 100644
--- a/voltha/protos/bbf_fiber_v_enet_body.proto
+++ b/voltha/protos/bbf_fiber_v_enet_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 
 message VEnetConfigData {
diff --git a/voltha/protos/bbf_fiber_v_ontani_body.proto b/voltha/protos/bbf_fiber_v_ontani_body.proto
index ab13163..af2f3ef 100644
--- a/voltha/protos/bbf_fiber_v_ontani_body.proto
+++ b/voltha/protos/bbf_fiber_v_ontani_body.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
 
 message VOntaniConfigData {
diff --git a/voltha/protos/bbf_fiber_wavelength_profile_body.proto b/voltha/protos/bbf_fiber_wavelength_profile_body.proto
index 30763b6..ab077a4 100644
--- a/voltha/protos/bbf_fiber_wavelength_profile_body.proto
+++ b/voltha/protos/bbf_fiber_wavelength_profile_body.proto
@@ -1,6 +1,9 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/bbf_fiber";
+
 package bbf_fiber;
-import public "meta.proto";
+import "meta.proto";
 
 message WavelengthProfileData {
     string name = 1;
diff --git a/voltha/protos/common.proto b/voltha/protos/common.proto
index 5f311e1..ce165ae 100644
--- a/voltha/protos/common.proto
+++ b/voltha/protos/common.proto
@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/common";
+
 package voltha;
 
 import "yang_options.proto";
diff --git a/voltha/protos/device.proto b/voltha/protos/device.proto
index 30baf34..6bb3f41 100644
--- a/voltha/protos/device.proto
+++ b/voltha/protos/device.proto
@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/voltha";
+
 package voltha;
 
 import "meta.proto";
diff --git a/voltha/protos/events.proto b/voltha/protos/events.proto
index 8bffae9..e583546 100644
--- a/voltha/protos/events.proto
+++ b/voltha/protos/events.proto
@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/voltha";
+
 package voltha;
 
 import "meta.proto";
@@ -135,4 +137,4 @@
 
     // Key/Value storage for extra information that may give context to the alarm
     map<string, string> context = 11;
-}
\ No newline at end of file
+}
diff --git a/voltha/protos/health.proto b/voltha/protos/health.proto
index 19383a9..c7ae099 100644
--- a/voltha/protos/health.proto
+++ b/voltha/protos/health.proto
@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/voltha";
+
 package voltha;
 
 import "google/api/annotations.proto";
diff --git a/voltha/protos/ietf_interfaces.proto b/voltha/protos/ietf_interfaces.proto
index e3f1204..dc927f2 100644
--- a/voltha/protos/ietf_interfaces.proto
+++ b/voltha/protos/ietf_interfaces.proto
@@ -1,4 +1,7 @@
 syntax = "proto3";
+
+option go_package = "github.com/opencord/voltha/protos/go/ietf";
+
 package ietf_interfaces;
 
 message Interfaces {
diff --git a/voltha/protos/logical_device.proto b/voltha/protos/logical_device.proto
index 94d9588..b35fb90 100644
--- a/voltha/protos/logical_device.proto
+++ b/voltha/protos/logical_device.proto
@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/voltha";
+
 package voltha;
 
 import "meta.proto";
diff --git a/voltha/protos/meta.proto b/voltha/protos/meta.proto
index b78c9e3..08462d8 100644
--- a/voltha/protos/meta.proto
+++ b/voltha/protos/meta.proto
@@ -17,6 +17,8 @@
 
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/common";
+
 package voltha;
 
 import "google/protobuf/descriptor.proto";
diff --git a/voltha/protos/openflow_13.proto b/voltha/protos/openflow_13.proto
index 4cdfc12..ea8235a 100644
--- a/voltha/protos/openflow_13.proto
+++ b/voltha/protos/openflow_13.proto
@@ -57,6 +57,8 @@
  */
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/openflow_13";
+
 package openflow_13;
 
 import "google/api/annotations.proto";
diff --git a/voltha/protos/ponsim.proto b/voltha/protos/ponsim.proto
index 4915dab..91018ad 100644
--- a/voltha/protos/ponsim.proto
+++ b/voltha/protos/ponsim.proto
@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/voltha";
+
 package voltha;
 
 import "google/protobuf/empty.proto";
@@ -21,6 +23,11 @@
     repeated openflow_13.ofp_flow_stats flows = 2;
 }
 
+message PonSimFrame {
+    string id = 1;
+    bytes payload = 2;
+}
+
 message PonSimPacketCounter {
     string name = 1;
     int64 value = 2;
@@ -63,6 +70,11 @@
 }
 
 service PonSim {
+    rpc SendFrame(PonSimFrame)
+        returns (google.protobuf.Empty) {}
+
+    rpc ReceiveFrames(google.protobuf.Empty)
+        returns (stream PonSimFrame) {}
 
     rpc GetDeviceInfo(google.protobuf.Empty)
         returns(PonSimDeviceInfo) {}
diff --git a/voltha/protos/schema.proto b/voltha/protos/schema.proto
index 1023f1a..5dfa52d 100644
--- a/voltha/protos/schema.proto
+++ b/voltha/protos/schema.proto
@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/schema";
+
 package schema;
 
 import "google/api/annotations.proto";
diff --git a/voltha/protos/voltha.proto b/voltha/protos/voltha.proto
index 15cef20..1dc7897 100644
--- a/voltha/protos/voltha.proto
+++ b/voltha/protos/voltha.proto
@@ -6,6 +6,8 @@
 
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/voltha";
+
 package voltha;
 
 import "google/protobuf/empty.proto";
diff --git a/voltha/protos/yang_options.proto b/voltha/protos/yang_options.proto
index e64fef1..fbde8a3 100644
--- a/voltha/protos/yang_options.proto
+++ b/voltha/protos/yang_options.proto
@@ -17,6 +17,8 @@
 
 syntax = "proto3";
 
+option go_package = "github.com/opencord/voltha/protos/go/common";
+
 package voltha;
 
 import "google/protobuf/descriptor.proto";