Working openflow agent for ONOS OLT-test. Needs integration to VOLTHA.
diff --git a/voltha/northbound/openflow/agent/main.py b/voltha/northbound/openflow/agent/main.py
new file mode 100644
index 0000000..f404df5
--- /dev/null
+++ b/voltha/northbound/openflow/agent/main.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+
+import logging
+
+from argparse import ArgumentParser
+from store import ObjectStore
+from backends.mock import MockBackend
+from agent import Agent
+
+
+def parse_options():
+ parser = ArgumentParser("pyofagent - Python-based Open Flow Agent")
+ parser.add_argument("-c", "--controller", #dest="controller",
+ help="Controller host:port to connect to", metavar="HOST:PORT",
+ default="localhost:6633")
+ parser.add_argument("-d", "--devid", dest="datapath_id",
+ help="Device identified", metavar="DEVID",
+ default=42)
+ parser.add_argument("-v", "--verbose", action='store_true', #dest=verbose,
+ default="enable verbose logging (log-level is DEBUG)")
+ parser.add_argument("-I", "--in-out-iface", metavar="IN-OUT-IFACE",
+ help="Local interface to receve/send in-out frames",)
+ parser.add_argument("-S", "--in-out-stag", metavar="IN-OUT-STAG",
+ help="Expect/Apply given s-tag when receiving/sending frames"+
+ "at the in-out interface")
+ return parser.parse_args()
+
+
+def main():
+
+ args = parse_options()
+
+ logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
+
+ store = ObjectStore()
+ backend = MockBackend(store, in_out_iface=args.in_out_iface,
+ in_out_stag=None if args.in_out_stag is None else int(args.in_out_stag))
+ agent = Agent(args.controller, int(args.datapath_id), store, backend)
+ store.set_agent(agent)
+ backend.set_agent(agent)
+
+ try:
+ agent.run()
+ except KeyboardInterrupt:
+ logging.info("Ctrl-c received! Shutting down connection and exiting...")
+ agent.stop()
+ backend.stop()
+
+
+if __name__ == '__main__':
+ main()