diff --git a/Makefile b/Makefile
index 33abf12..9a1b268 100644
--- a/Makefile
+++ b/Makefile
@@ -60,7 +60,7 @@
 venv-service:
 	virtualenv $@;\
     source ./$@/bin/activate ; set -u ;\
-    pip install -r requirements.txt xosmigrate~=3.2.6
+    pip install -r requirements.txt xosmigrate~=3.2.6 django
 
 create-migration: venv-service
 	source ./venv-service/bin/activate; set -u;\
diff --git a/tox.ini b/tox.ini
index 9064a11..73c1e23 100644
--- a/tox.ini
+++ b/tox.ini
@@ -23,6 +23,7 @@
   -r requirements.txt
   requests_mock
   nose2
+  django
 ;  flake8
 
 changedir = xos
diff --git a/xos/synchronizer/migrations/0010_auto_20190620_1906.py b/xos/synchronizer/migrations/0010_auto_20190620_1906.py
new file mode 100644
index 0000000..4588258
--- /dev/null
+++ b/xos/synchronizer/migrations/0010_auto_20190620_1906.py
@@ -0,0 +1,38 @@
+# 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.
+
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.21 on 2019-06-20 23:06
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('volt', '0009_auto_20190610_1723'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='oltdevice_decl',
+            name='technology',
+            field=models.CharField(choices=[(b'gpon', b'gpon'), (b'xgspon', b'xgspon')], db_index=True, default=b'xgspon', help_text=b'The technology being utilized by the adapter', max_length=16),
+        ),
+        migrations.AlterUniqueTogether(
+            name='technologyprofile_decl',
+            unique_together=set([('profile_id', 'technology')]),
+        ),
+    ]
diff --git a/xos/synchronizer/models/models.py b/xos/synchronizer/models/models.py
index 643b5d3..5114871 100644
--- a/xos/synchronizer/models/models.py
+++ b/xos/synchronizer/models/models.py
@@ -26,6 +26,7 @@
 from models_decl import ANIPort_decl, ANIPort
 from models_decl import UNIPort_decl, UNIPort
 from models_decl import TechnologyProfile_decl
+from django.core.exceptions import ObjectDoesNotExist
 
 import json
 
@@ -41,6 +42,36 @@
         except IndexError, e:
             return False
 
+    def get_olt_technology_from_unu_sn(self, onu_sn):
+        """
+        Return the technology assigned to an OLT Device given and ONU Serial Number
+        example usage:
+            volt = VOLTService.objects.first()
+            sn = volt.get_olt_technology_from_unu_sn("BRCM12345678")
+            # "XGSPON"
+
+        Arguments:
+            onu_sn {string} -- The ONU Serial Number
+
+        Returns:
+            string -- Technology
+        """
+        try:
+            onu = ONUDevice.objects.get(serial_number=onu_sn)
+            olt = onu.pon_port.olt_device
+            return olt.technology
+        except ObjectDoesNotExist:
+            raise XOSNotFound("Can't find OLT for %s" % onu_sn, serial_number=onu_sn)
+
+    def get_tech_profile(self, technology, profile_id):
+        """
+        Returns a Technology profiles or raise an Exception (DoesNotExist)
+        :param technology: string
+        :param profile_id: int
+        :return: TechnologyProfile
+        """
+        return TechnologyProfile.objects.get(technology=technology, profile_id=profile_id)
+
 class OLTDevice(OLTDevice_decl):
     class Meta:
         proxy = True
diff --git a/xos/synchronizer/models/volt.xproto b/xos/synchronizer/models/volt.xproto
index 5abdf6f..cabf0c2 100644
--- a/xos/synchronizer/models/volt.xproto
+++ b/xos/synchronizer/models/volt.xproto
@@ -101,6 +101,14 @@
     optional string nas_id = 20 [
         help_text = "Authentication ID (propagated to the free-radius server via sadis)",
         max_length = 256];
+
+    required string technology = 22 [
+        help_text = "The technology being utilized by the adapter",
+        db_index = True,
+        tosca_key = True,
+        max_length = 16,
+        choices = "(('gpon', 'gpon'), ('xgspon', 'xgspon'))",
+        default = "xgspon"];
 }
 
 message PortBase (XOSBase){
@@ -116,12 +124,10 @@
 
     optional string admin_state = 4 [
         help_text = "admin state, whether port should be enabled",
-        // TODO: Should specify "choices"
         feedback_state = True,
         max_length = 32];
     optional string oper_status = 5 [
         help_text = "operational status, whether port is active",
-        // TODO: Should specify "choices"
         feedback_state = True,
         max_length = 32];
 }
@@ -237,7 +243,9 @@
         db_index = True,
         tosca_key = True,
         min_value = 64,
-        max_value = 255];
+        max_value = 255,
+        unique_with = "technology"];
+
     required string profile_value = 3 [
         help_text = "The technology profile value in JSON format",
         max_length = 4096];
