diff --git a/common/utils/nethelpers.py b/common/utils/nethelpers.py
index b79d2b0..a082eeb 100644
--- a/common/utils/nethelpers.py
+++ b/common/utils/nethelpers.py
@@ -22,7 +22,6 @@
 
 import netifaces as ni
 
-
 def get_my_primary_interface():
     gateways = ni.gateways()
     assert 'default' in gateways, \
@@ -36,10 +35,13 @@
 
 
 def get_my_primary_local_ipv4(ifname=None):
-    ifname = get_my_primary_interface() if ifname is None else ifname
-    addresses = ni.ifaddresses(ifname)
-    ipv4 = addresses[AF_INET][0]['addr']
-    return ipv4
+    try:
+        ifname = get_my_primary_interface() if ifname is None else ifname
+        addresses = ni.ifaddresses(ifname)
+        ipv4 = addresses[AF_INET][0]['addr']
+        return ipv4
+    except Exception as e:
+        return None
 
 
 if __name__ == '__main__':
diff --git a/compose/docker-compose-vcli.yml b/compose/docker-compose-vcli.yml
index f3aafa3..3e543a5 100644
--- a/compose/docker-compose-vcli.yml
+++ b/compose/docker-compose-vcli.yml
@@ -20,6 +20,7 @@
       - -C consul:8500
       - -g voltha:50555
       - -s voltha:18880
+      - -G
     networks:
       - voltha-net
     ports:
diff --git a/compose/docker-compose-voltha-swarm.yml b/compose/docker-compose-voltha-swarm.yml
new file mode 100644
index 0000000..39532f7
--- /dev/null
+++ b/compose/docker-compose-voltha-swarm.yml
@@ -0,0 +1,30 @@
+version: "3"
+services:
+  voltha:
+    image: cord/voltha:latest
+    deploy:
+      replicas: 3
+    entrypoint:
+      - voltha/voltha/main.py
+      - -v
+      - --consul=consul:8500
+      - --fluentd=fluentd:24224
+      - --kafka=kafka
+      - --rest-port=8880
+      - --grpc-port=50555
+      - --instance-id-is-container-name
+      - --interface=eth2
+      - --backend=consul
+    networks:
+      - net
+    ports:
+      - "8880:8880"
+      - "18880:18880"
+      - "50555:50555"
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock
+
+networks:
+  net:
+    external:
+      name: voltha_net
diff --git a/voltha/main.py b/voltha/main.py
index 787eb36..9eb12d4 100755
--- a/voltha/main.py
+++ b/voltha/main.py
@@ -52,13 +52,11 @@
 defs = dict(
     config=os.environ.get('CONFIG', './voltha.yml'),
     consul=os.environ.get('CONSUL', 'localhost:8500'),
-    external_host_address=os.environ.get('EXTERNAL_HOST_ADDRESS',
-                                         get_my_primary_local_ipv4()),
+    external_host_address=os.environ.get('EXTERNAL_HOST_ADDRESS', None),
     fluentd=os.environ.get('FLUENTD', None),
     grpc_port=os.environ.get('GRPC_PORT', 50055),
     instance_id=os.environ.get('INSTANCE_ID', os.environ.get('HOSTNAME', '1')),
-    internal_host_address=os.environ.get('INTERNAL_HOST_ADDRESS',
-                                         get_my_primary_local_ipv4()),
+    internal_host_address=os.environ.get('INTERNAL_HOST_ADDRESS', None),
     interface=os.environ.get('INTERFACE', get_my_primary_interface()),
     rest_port=os.environ.get('REST_PORT', 8880),
     kafka=os.environ.get('KAFKA', 'localhost:9092'),
@@ -126,8 +124,7 @@
                         default=defs['instance_id'],
                         help=_help)
 
-    # TODO placeholder, not used yet
-    _help = 'ETH interface to send (default: %s)' % defs['interface']
+    _help = 'ETH interface to recieve (default: %s)' % defs['interface']
     parser.add_argument('-I', '--interface',
                         dest='interface',
                         action='store',
@@ -207,6 +204,14 @@
     if args.instance_id_is_container_name:
         args.instance_id = get_my_containers_name()
 
+    m_ip = get_my_primary_local_ipv4(args.interface)
+    if not m_ip:
+        m_ip = get_my_primary_local_ipv4()
+    if not args.external_host_address:
+        args.external_host_address = m_ip
+    if not args.internal_host_address:
+        args.internal_host_address = m_ip
+
     return args
 
 
@@ -284,7 +289,9 @@
     @inlineCallbacks
     def startup_components(self):
         try:
-            self.log.info('starting-internal-components')
+            self.log.info('starting-internal-components',
+                          internal_host=self.args.internal_host_address,
+                          external_host=self.args.external_host_address)
 
             registry.register('main', self)
 
