[VOL-4687] Add transceivers to DMI, add commands to bbsimctl to manage them

Change-Id: Id1fe29eb48a7abb3c86958827edce70b75707de9
diff --git a/api/bbsim/bbsim_dmi.proto b/api/bbsim/bbsim_dmi.proto
index bc89a16..48c7da9 100644
--- a/api/bbsim/bbsim_dmi.proto
+++ b/api/bbsim/bbsim_dmi.proto
@@ -23,13 +23,44 @@
    string event_name= 1;
 }
 
-message DmiCreateEventResponse {
+message DmiResponse {
     int32 status_code = 1;
     string message = 2;
 }
 
+message DmiEmpty {
+}
+
+message TransceiverRequest {
+    uint32 TransceiverId = 1;
+}
+
+message Transceiver{
+    uint32 ID = 1;
+    string UUID = 2;
+    string Name = 3;
+    string Technology = 4;
+    bool PluggedIn = 5;
+    repeated uint32 PonIds = 6;
+}
+
+message Transceivers{
+    repeated Transceiver Items = 1;
+}
+
+
 service BBsim_dmi {
     // Ask the DMI Server to create an event
-    rpc CreateEvent (DmiEvent) returns (DmiCreateEventResponse){
+    rpc CreateEvent (DmiEvent) returns (DmiResponse){
+    }
+
+    rpc GetTransceivers (DmiEmpty) returns (Transceivers) {
+    }
+
+    // Plug out the transceiver by transceiverId
+    rpc PlugOutTransceiver (TransceiverRequest) returns (DmiResponse) {
+    }
+    // Plug in the transceiver of a PON by pon-port-ID
+    rpc PlugInTransceiver (TransceiverRequest) returns (DmiResponse) {
     }
 }