Async/streaming gRPC client/server proto

This experiment was to fine-tune how we can implement
async gRPC client and server code inside a Twisted
python app.

Change-Id: I945014e27f4b9d6ed624666e0284cc298548adb3

Major cleanup of openflow_13.proto

Change-Id: I4e54eaf87b682124ec518a0ade1a6050a6ec6da8

Relocated openflow_13.proto to voltha

Change-Id: I66ae45a9142d180c2c6651e75c7a1ee08aef7ef8

Removed forced utest from make build

Change-Id: If0da58e9d135ebde6ca68c3316688a03a7b10f2f

twisted openflow agent first pass

Change-Id: Ibe5b4727ccfe92e6fd464ccd3baf6275569ef5d3

store openflow derived files

Change-Id: Ib3e1384bb2ca2a9c0872767f7b793f96b0a154e2

Minor cleanup

Change-Id: I1280ed3acb606121b616a0efd573f5f59d010dca

Factored out common utils

Change-Id: Icd86fcd50f60d0900924674cbcd65e13e47782a1

Refactored twisted agent

Change-Id: I71f26ce5357a4f98477df60b8c5ddc068cf75d43

Relocated openflow agent to ofagent

... and preserved obsolete working (non-twisted) agent under
~/obsolete, so we can still run the olt-oftest and pass tests,
unit the new twisted based agent reaches that maturity point.

Change-Id: I727f8d7144b1291a40276dad2966b7643bd7bc4b

olt-oftest in fake mode works with new agent

Change-Id: I43b4f5812e8dfaa9f45e4a77fdcf6c30ac520f8d

Initial ofagent/voltha operation

Change-Id: Ia8104f1285a6b1c51635d36d7d78fc113f800e79

Additional callouts to Voltha

Change-Id: If8f483d5140d3c9d45f22b480b8d33249a29cd4e

More gRPC calls

Change-Id: I7d24fadf9425217fb26ffe18f25359d072ef38fa

Flow add/list now works

Change-Id: Ie3e3e73108645b47891cef798fc61372a022fd93

Missed some files

Change-Id: I29e81238ff1a26c095c0c73e521579edf7092e21
diff --git a/experiments/streaming_server.py b/experiments/streaming_server.py
index a207477..588d4b3 100644
--- a/experiments/streaming_server.py
+++ b/experiments/streaming_server.py
@@ -1,11 +1,13 @@
+#!/usr/bin/env python
+
 import grpc
 from concurrent import futures
 from concurrent.futures import Future
 from twisted.internet import reactor
 from twisted.internet.defer import Deferred, inlineCallbacks, returnValue
 
-from openflow_13_pb2 import add_OpenFlowServicer_to_server, \
-    OpenFlowServicer
+from common.utils.asleep import asleep
+
 from streaming_pb2 import add_ExperimentalServiceServicer_to_server, \
     AsyncEvent, ExperimentalServiceServicer, Echo
 
@@ -14,12 +16,6 @@
     stop = False  # semaphore for all loops to stop when this flag is set
 
 
-def asleep(t):
-    d = Deferred()
-    reactor.callLater(t, d.callback, None)
-    return d
-
-
 class ShuttingDown(Exception): pass
 
 
@@ -92,7 +88,7 @@
     @inlineCallbacks
     def get_next_event(self):
         """called on the twisted thread"""
-        yield asleep(0.000001)
+        yield asleep(0.0001)
         event = AsyncEvent(seq=self.event_seq, details='foo')
         self.event_seq += 1
         returnValue(event)
@@ -112,23 +108,10 @@
         pass
 
 
-class OpenFlow(OpenFlowServicer):
-
-    def EchoRequest(self, request, context):
-        pass
-
-    def SendPacketsOutMessages(self, request, context):
-        pass
-
-    def ReceivePacketInMessages(self, request, context):
-        pass
-
-
 if __name__ == '__main__':
     thread_pool = futures.ThreadPoolExecutor(max_workers=10)
     server = grpc.server(thread_pool)
     add_ExperimentalServiceServicer_to_server(Service(), server)
-    add_OpenFlowServicer_to_server(OpenFlow(), server)
     server.add_insecure_port('[::]:50050')
     server.start()
     def shutdown():