diff --git a/xos/configurations/cord/ceilometer.yaml b/xos/configurations/cord/ceilometer.yaml
index 215a1cc..35922cf 100644
--- a/xos/configurations/cord/ceilometer.yaml
+++ b/xos/configurations/cord/ceilometer.yaml
@@ -50,7 +50,7 @@
             sflow_port:
               type: integer
               required: false
-              default: 6643
+              default: 6343
               description: sFlow listening port
             sflow_api_port:
               type: integer
@@ -86,7 +86,7 @@
       properties:
           view_url: /admin/ceilometer/sflowservice/$id$/
           kind: sflow
-          sflow_port: 6643
+          sflow_port: 6343
           sflow_api_port: 33333
 
     Private:
diff --git a/xos/services/ceilometer/models.py b/xos/services/ceilometer/models.py
index 6c749f3..91d9716 100644
--- a/xos/services/ceilometer/models.py
+++ b/xos/services/ceilometer/models.py
@@ -10,6 +10,7 @@
 from xos.exceptions import *
 from core.models import SlicePrivilege, SitePrivilege
 from sets import Set
+from urlparse import urlparse
 
 CEILOMETER_KIND = "ceilometer"
 
@@ -251,13 +252,13 @@
 
     @property
     def listening_endpoint(self):
-        return self.get_attribute("listening_endpoint", self.default_attributes["listening_endpoint"])
+        return self.get_attribute("listening_endpoint", None)
 
     @listening_endpoint.setter
     def listening_endpoint(self, value):
         if urlparse(value).scheme != 'udp':
             raise XOSProgrammingError("SFlowTenant: Only UDP listening endpoint URLs are accepted...valid syntax is: udp://ip:port")
-        self.listening_endpoint = value
+        self.set_attribute("listening_endpoint", value)
 
     def save(self, *args, **kwargs):
         if not self.creator:
diff --git a/xos/synchronizers/monitoring_channel/steps/sync_sflowservice.py b/xos/synchronizers/monitoring_channel/steps/sync_sflowservice.py
index 0471955..5e5cd83 100644
--- a/xos/synchronizers/monitoring_channel/steps/sync_sflowservice.py
+++ b/xos/synchronizers/monitoring_channel/steps/sync_sflowservice.py
@@ -53,7 +53,8 @@
     def get_extra_attributes(self, o):
         fields={}
         fields["instance_hostname"] = self.get_instance(o).instance_name.replace("_","-")
-        fields["listening_endpoint"] = o.listening_endpoint
+        fields["sflow_port"] = o.sflow_port
+        fields["sflow_api_port"] = o.sflow_api_port
         fields["nat_ip"] = self.get_instance(o).get_ssh_ip()
         fields["sflow_container"] = "sflowpubsub"
         return fields
diff --git a/xos/synchronizers/monitoring_channel/steps/sync_sflowservice.yaml b/xos/synchronizers/monitoring_channel/steps/sync_sflowservice.yaml
index 470fc34..b0b3f50 100644
--- a/xos/synchronizers/monitoring_channel/steps/sync_sflowservice.yaml
+++ b/xos/synchronizers/monitoring_channel/steps/sync_sflowservice.yaml
@@ -4,6 +4,9 @@
   connection: ssh
   user: ubuntu
   sudo: yes
+  vars:
+     sflow_port: {{ sflow_port }}
+     sflow_api_port: {{ sflow_api_port }}
 
   tasks:
 
@@ -48,6 +51,9 @@
       # was: reloaded
       state: running
       image: srikanthvavila/sflowpubsub
+      expose:
+      - {{ sflow_api_port }}
+      - {{ sflow_port }}
       ports:
       - "{{ sflow_port }}:{{ sflow_port }}/udp"
       - "{{ sflow_api_port }}:{{ sflow_api_port }}"
@@ -65,5 +71,4 @@
       port={{ '{{' }} item {{ '}}' }}
       state=present
     with_items:
-    - {{ sflow_port }}
     - {{ sflow_api_port }}
diff --git a/xos/synchronizers/monitoring_channel/steps/sync_sflowtenant.py b/xos/synchronizers/monitoring_channel/steps/sync_sflowtenant.py
index 3e14b1e..a15fa54 100644
--- a/xos/synchronizers/monitoring_channel/steps/sync_sflowtenant.py
+++ b/xos/synchronizers/monitoring_channel/steps/sync_sflowtenant.py
@@ -13,7 +13,7 @@
 from synchronizers.base.ansible import run_template_ssh
 from synchronizers.base.SyncInstanceUsingAnsible import SyncInstanceUsingAnsible
 from core.models import Service, Slice, ControllerSlice, ControllerUser
-from services.ceilometer.models import SFlowTenant
+from services.ceilometer.models import SFlowService, SFlowTenant
 from xos.logger import Logger, logging
 
 # hpclibrary will be in steps/..
@@ -47,12 +47,25 @@
 
         return sflows[0]
 
+    def get_instance(self, o):
+        # We assume the SFlow service owns a slice, so pick one of the instances
+        # inside that slice to sync to.
+
+        serv = self.get_sflow_service(o)
+
+        if serv.slices.exists():
+            slice = serv.slices.all()[0]
+            if slice.instances.exists():
+                return slice.instances.all()[0]
+
+        return None
+
     def get_extra_attributes(self, o):
         instance = self.get_instance(o)
 
         fields={}
-        fields["sflow_api_base_url"] = get_sflow_service(self, o).sflow_api_url
-        fields["sflow_api_port"] = get_sflow_service(self, o).sflow_api_port
+        fields["sflow_api_base_url"] = self.get_sflow_service(o).sflow_api_url
+        fields["sflow_api_port"] = self.get_sflow_service(o).sflow_api_port
         fields["listening_endpoint"] = o.listening_endpoint
         fields["sflow_container"] = "sflowpubsub"
 
