diff --git a/xos/synchronizer/models/convenience/hippieossservice.py b/xos/synchronizer/models/convenience/hippieossservice.py
new file mode 100644
index 0000000..356d1f2
--- /dev/null
+++ b/xos/synchronizer/models/convenience/hippieossservice.py
@@ -0,0 +1,48 @@
+
+# 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.
+
+
+# validate_onu received event:
+# {
+#     'status': 'activate',
+#     'serial_number': 'BRCM1234',
+#     'uni_port_id': 'of:00100101',
+#     'of_dpid': 'of:109299321'
+# }
+
+from xosapi.orm import ORMWrapper, register_convenience_wrapper
+from xosapi.convenience.serviceinstance import ORMWrapperServiceInstance
+
+import logging as log
+
+class ORMWrapperHippieOSSService(ORMWrapperServiceInstance):
+
+    def validate_onu(self, event):
+        log.info("validating ONU %s" % event["serial_number"])
+
+        # TODO check if a service instance for this serial_number already exists
+
+        # create an HippieOSSServiceInstance, the validation will be triggered in the corresponding sync step
+        oss_si = self.stub.HippieOSSServiceInstance(
+            serial_number=event["serial_number"],
+            uni_port_id=event["uni_port_id"],
+            of_dpid=event["of_dpid"]
+        )
+        oss_si.save()
+
+
+
+
+register_convenience_wrapper("HippieOSSService", ORMWrapperHippieOSSService)
diff --git a/xos/synchronizer/models/hippie-oss.xproto b/xos/synchronizer/models/hippie-oss.xproto
new file mode 100644
index 0000000..558d8b4
--- /dev/null
+++ b/xos/synchronizer/models/hippie-oss.xproto
@@ -0,0 +1,18 @@
+option name = "hippie-oss";
+option app_label = "hippie-oss";
+
+message HippieOSSService (Service){
+    option verbose_name = "HippieOSS Service";
+    option kind = "OSS";
+}
+
+message HippieOSSServiceInstance (ServiceInstance){
+    option owner_class_name = "HippieOSSService";
+    option verbose_name = "HippieOSS Service Instance";
+
+    required bool valid = 1 [help_text = "Wether this ONU has been validated by the external OSS", default = False, null = False, db_index = False, blank = False];
+    required string serial_number = 2 [max_length = 254, null = False, db_index = False, blank = False, tosca_key=True, unique = True];
+    required int32 uni_port_id = 3 [null = False, db_index = False, blank = False];
+    required string of_dpid = 4 [max_length = 254, null = False, db_index = False, blank = False];
+    optional int32 c_tag = 4 [null = True, db_index = False, blank = False, unique = True, feedback_state = True];
+}
\ No newline at end of file
