diff --git a/xos/make_synchronizer_manifest.sh b/xos/make_synchronizer_manifest.sh
index 4609e85..5351287 100755
--- a/xos/make_synchronizer_manifest.sh
+++ b/xos/make_synchronizer_manifest.sh
@@ -1,5 +1,3 @@
-#! /bin/bash
-
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,4 +12,5 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-find synchronizer -type f | cut -b 14- > synchronizer/manifest 
+#! /bin/bash
+find synchronizer -type f | cut -b 14- > synchronizer/manifest
diff --git a/xos/synchronizer/steps/roles/sprint_mme_setup/tasks/main.yml b/xos/synchronizer/steps/roles/sprint_mme_setup/tasks/main.yml
new file mode 100644
index 0000000..d5548fe
--- /dev/null
+++ b/xos/synchronizer/steps/roles/sprint_mme_setup/tasks/main.yml
@@ -0,0 +1,18 @@
+---
+- name: Copy templates
+  template:
+    src: "templates/{{ item }}.j2"
+    dest: "{{ source_path }}/{{ item }}"
+  with_items:
+    - vbfd.conf
+    - vbsm_cfg.txt
+
+- name: Run make_certs.sh command
+  shell: "./make_certs.sh mme {{ realm }}"
+  args:
+    chdir: "{{ source_path }}"
+
+- name: Run vb_acc
+  shell: "./vb_acc"
+  args:
+    chdir: "{{ source_path }}"
diff --git a/xos/synchronizer/steps/roles/sprint_mme_setup/templates/vbfd.conf.j2 b/xos/synchronizer/steps/roles/sprint_mme_setup/templates/vbfd.conf.j2
new file mode 100644
index 0000000..a3f4b90
--- /dev/null
+++ b/xos/synchronizer/steps/roles/sprint_mme_setup/templates/vbfd.conf.j2
@@ -0,0 +1,87 @@
+{#
+Copyright 2017-present Open Networking Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+#}
+# -------- Test configuration ---------
+
+# Identity = "<diameter_host>.<diameter_realm>";
+Identity = "{{ identity }}";
+Realm = "{{ realm }}";
+# Port = 3868;
+# SecPort = 3869;
+
+ConnectPeer = "{{ connect_peer }}" { ConnectTo = "{{ s6a_hss_ip }}"; No_TLS; port = {{ hss_port }}; };
+
+# TLS_Cred = "<diameter_host>.cert.pem", "<diameter_host>.key.pem";
+TLS_Cred = "mme.cert.pem",
+	   "mme.key.pem";
+TLS_CA = "cacert.pem";
+
+LoadExtension = "/usr/local/lib/freeDiameter/dict_3gpp2_avps.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_CreditControl.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_base_rfc6733.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_draftload_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_etsi283034_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4004_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4006bis_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4072_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4590_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5447_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5580_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5777_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5778_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6734_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6942_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7155_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7683_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7944_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29061_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29128_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29154_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29173_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29212_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29214_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29215_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29217_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29229_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29272_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29273_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29329_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29336_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29337_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29338_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29343_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29344_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29345_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29368_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29468_avps.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_ts32299_avps.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_CxDx.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_Gx.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_NAS.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rf.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_Ro.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_Rx.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_S6as6d.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_S6c.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_S6mS6n.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_S6t.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_S9.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_SGd.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_SLh.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sd.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_Sh.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_T4.fdx";
+LoadExtension = "/usr/local/lib/freeDiameter/dict_T6aT6bT7.fdx";
+#LoadExtension = "/usr/local/lib/freeDiameter/dict_Tsp.fdx";
diff --git a/xos/synchronizer/steps/roles/sprint_mme_setup/templates/vbsm_cfg.txt.j2 b/xos/synchronizer/steps/roles/sprint_mme_setup/templates/vbsm_cfg.txt.j2
new file mode 100644
index 0000000..1df4b79
--- /dev/null
+++ b/xos/synchronizer/steps/roles/sprint_mme_setup/templates/vbsm_cfg.txt.j2
@@ -0,0 +1,91 @@
+{#
+Copyright 2017-present Open Networking Foundation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+#}
+# Configuration file for MME
+
+#####  NOTE: Please Do NOT change the order of the parameters #####
+
+# EGTP related
+VBSM_EG_DFLT_PORT                2123                     # EGTP Default port
+VBSM_EG_NONDFLT_PORT             2124                     # EGTP Non Default port
+VBSM_EG_S10_NONDFLT_PORT         2125                     # EGTP Non Default
+VBSM_EG_S3_NONDFLT_PORT          2126                     # EGTP Non Default port for S3 interface towards SGSN
+                                                          # port for S10
+VBSM_EG_DFLT_HOST_NAME           "sutlej.ccin.ccpu.com"   # EGTP host name
+
+
+# E-NodeB related
+VBSM_ENB_ADDR_1                  "{{ s1mme_enb_ip }}"      # IP address of eNodeB
+VBSM_ENB_PORT_1                  32767              # eNodeB port
+#VBSM_ENB_ADDR_2                  "172.26.20.180"      # IP address of eNodeB
+#VBSM_ENB_PORT_2                  36422              # eNodeB port
+
+# MME related
+VBSM_MME_IPADDR                  "{{ s1mme_mme_ip }}"    # MME IP address
+VBSM_MME_S1AP_IPADDR             "{{ s1mme_mme_ip }}"    # MME IP address associated with the S1AP interface
+VBSM_MME_EGTP_IPADDR             "{{ s11_mme_ip }}"    # MME IP address associated with the EGTP interface
+VBSM_MME_SCTP_PORT               36412           # MME SCTP port
+
+VBSM_SGW_IPADDR                  "{{ s11_sgw_ip }}"   # SGW IP address
+VBSM_PGW_IPADDR                  "192.168.1.105"    # PDN-GW IP address
+
+VBSM_UE_NUM                      32             # DEC_14_FIX: Changes to support 35 UE's
+VBSM_SCTP_UDP_SERV_TYPE          0              #service type,default 0 SCTP
+
+# Debug mask to be set; each represent
+#different debug masks to be set (1 and 0 to unset)
+#in the form |LVB_DBGMASK_INFO|LVB_DBGMASK_ERROR|LVB_DBGMASK_TRC|LVB_DBGMASK_MEM
+
+VBSM_MME_DBG_MASK                1111
+VBSM_DBG_MASK                    1111
+VBSM_NW_INIATED_DETACH_TIMER     1000
+
+VBSM_MCC_DIG1         2
+VBSM_MCC_DIG2         0
+VBSM_MCC_DIG3         8
+
+VBSM_MNC_DIG1         0
+VBSM_MNC_DIG2         1
+VBSM_MNC_DIG3         -1 
+
+# Target PLMN ID format [ MCC + MNC], + is concatination operator
+# If MNC has two digits, the last charater shall be 'f'
+# Valid Configurations: 11223f, 112345.
+VBSM_TARGET_MME_PLMN_ID          31310f
+VBSM_TARGET_MME_IP_ADDR          "192.25.1.100"
+
+VBSM_T3412                        32
+
+VBSM_SGSN_IP_ADDR                "192.25.1.195"
+
+
+VBSM_SGSN_PLMN_ID        31311f
+
+VBSM_FD_CFG  "vbfd.conf"
+VBSM_HSS_HOST "hss.openair4G.eur"
+VBSM_HSS_REALM "openair4G.eur"
+
+# set VBSM_DISABLE_EPC_DNS 0 - enable DNS,  1 - disable DNS
+VBSM_DISABLE_EPC_DNS 1
+VBSM_REL_CAP 1
+VBSM_MME_NAME "vmme_standalone"
+VBSM_S1C_SCTP_INSTREAMS 10
+VBSM_S1C_SCTP_OUTSTREAMS 10
+VBSM_MAX_ENB  2
+VBSM_NO_OFGUMMEIS 1
+VBSM_MMECODE  1
+VBSM_MMEGRPID 1
+VBSM_NO_OF_TAI 1
+VBSM_TAI_LIST    {{1,2,0,8,0,1,1}}
diff --git a/xos/synchronizer/steps/sync_vmmetenant.py b/xos/synchronizer/steps/sync_vmmetenant.py
index 2a0c617..c642bb8 100644
--- a/xos/synchronizer/steps/sync_vmmetenant.py
+++ b/xos/synchronizer/steps/sync_vmmetenant.py
@@ -37,4 +37,59 @@
     def __init__(self, *args, **kwargs):
         super(SyncVMMETenant, self).__init__(*args, **kwargs)
 
+    def get_extra_attributes(self, o):
+        fields = {}
 
+        fields['s6a_hss_ip']   = self.get_ip_address_from_peer_service_instance('s6a_network', 'VHSSTenant', o, 's6a_hss_ip')
+        fields['s1mme_enb_ip'] = o.enodeb_ip_addr
+        fields['s1mme_mme_ip'] = self.get_my_ip_address(o, 'flat_network_s1mme', 's1mme_mme_ip')
+        fields['s11_mme_ip']   = self.get_my_ip_address(o, 's11_network', 's11_mme_ip')
+        fields['s11_sgw_ip']   = self.get_ip_address_from_peer_service_instance('s11_network', 'VSPGWCTenant', o, 's11_sgw_ip')
+
+        return fields
+
+    def get_my_ip_address(self, o, network_name, parameter=None):
+        return self.get_ip_address_from_peer_service_instance_instance(network_name, o, o, parameter)
+
+    def get_ip_address_from_peer_service_instance(self, network_name, sitype, o, parameter=None):
+        peer_si = self.get_peer_serviceinstance_of_type(sitype, o)
+        return self.get_ip_address_from_peer_service_instance_instance(network_name, peer_si, o, parameter)
+
+    def get_ip_address_from_peer_service_instance_instance(self, network_name, peer_si, o, parameter=None):
+        try:
+            net_id = self.get_network_id(network_name)
+            ins_id = peer_si.leaf_model.instance_id
+            ip_address = Port.objects.get(
+                network_id=net_id, instance_id=ins_id).ip
+        except Exception:
+            self.log.error("Failed to fetch parameter",
+                           parameter=parameter,
+                           network_name=network_name)
+            self.defer_sync(o, "Waiting for parameters to become available")
+
+        return ip_address
+
+    def get_peer_serviceinstance_of_type(self, sitype, o):
+        prov_link_set = ServiceInstanceLink.objects.filter(
+            subscriber_service_instance_id=o.id)
+
+        try:
+            peer_service = next(
+                p.provider_service_instance for p in prov_link_set if p.provider_service_instance.leaf_model_name == sitype)
+        except StopIteration:
+            sub_link_set = ServiceInstanceLink.objects.filter(
+                provider_service_instance_id=o.id)
+            try:
+                peer_service = next(
+                    s.subscriber_service_instance for s in sub_link_set if s.subscriber_service_instance.leaf_model_name == sitype)
+            except StopIteration:
+                self.log.error(
+                    'Could not find service type in service graph', service_type=sitype, object=o)
+                raise ServiceGraphException(
+                    "Synchronization failed due to incomplete service graph")
+
+        return peer_service
+
+    # To get each network id
+    def get_network_id(self, network_name):
+        return Network.objects.get(name=network_name).id
\ No newline at end of file
diff --git a/xos/synchronizer/steps/vmmetenant_playbook.yaml b/xos/synchronizer/steps/vmmetenant_playbook.yaml
index 05c13c1..5d90590 100644
--- a/xos/synchronizer/steps/vmmetenant_playbook.yaml
+++ b/xos/synchronizer/steps/vmmetenant_playbook.yaml
@@ -13,11 +13,21 @@
 # limitations under the License.
 
 ---
-- hosts: {{ instance_name }} 
-  gather_facts: False 
-  connection: ssh 
-  user: ubuntu 
-  sudo: yes 
-  tasks: 
+- hosts: {{ instance_name }}
+  gather_facts: False
+  connection: ssh
+  remote_user: ubuntu
+  become: yes
   vars:
- 
+    - source_path: /home/c3po/mme
+    - identity: "mme.localdomain"
+    - realm: "localdomain"
+    - connect_peer: "hss.openair4G.eur"
+    - hss_port: 3868
+    - s6a_hss_ip: {{ s6a_hss_ip }}
+    - s1mme_enb_ip: {{ s1mme_enb_ip }}
+    - s1mme_mme_ip: {{ s1mme_mme_ip }}
+    - s11_mme_ip: {{ s11_mme_ip }}
+    - s11_sgw_ip: {{ s11_sgw_ip }}
+  roles:
+    - sprint_mme_setup
diff --git a/xos/vmme.xproto b/xos/vmme.xproto
index 811d3e3..d8a4260 100644
--- a/xos/vmme.xproto
+++ b/xos/vmme.xproto
@@ -16,6 +16,7 @@
 message VMMETenant (TenantWithContainer){
     option verbose_name = "Virtual Mobility Management Entity Service Instance";
 
-    optional manytoone vmme_vendor->VMMEVendor:vendor_tenants = 1 [help_text = "select vendor of choice, leave blank for slice default", db_index = True, null = True, blank = True]; 
+    optional manytoone vmme_vendor->VMMEVendor:vendor_tenants = 1 [help_text = "select vendor of choice, leave blank for slice default", db_index = True, null = True, blank = True];
+    optional string enodeb_ip_addr = 2 [help_text = "external eNodeB IP address", max_length = 32, null = True, db_index = False, blank = True];
 }
 
