[SEBA-742] Validating Tech-profile ID only if the subscriber is not pre-provision (same validation as onu_sn)

Change-Id: I0ff4fbc785f3a0d2e1f0c867e742ff982547a3f8
diff --git a/xos/synchronizer/models/models.py b/xos/synchronizer/models/models.py
index c80cb63..fd25d01 100755
--- a/xos/synchronizer/models/models.py
+++ b/xos/synchronizer/models/models.py
@@ -251,9 +251,9 @@
             if not volt_service.has_access_device(self.onu_device):
                 raise XOSValidationError("The onu_device you specified (%s) does not exists" % self.onu_device)
 
-        # validate that the tech_profile_id actually exists
-        if not self.validate_tech_profile_id():
-            raise XOSValidationError("The technology profile you specified [%s] does not exist" % self.tech_profile_id)
+            # if the access network is managed by voltha, validate that the tech_profile_id actually exists
+            if not self.validate_tech_profile_id():
+                raise XOSValidationError("The technology profile you specified [%s] does not exist" % self.tech_profile_id)
 
         super(RCORDSubscriber, self).save(*args, **kwargs)
         self.invalidate_related_objects()
diff --git a/xos/synchronizer/models/rcord.xproto b/xos/synchronizer/models/rcord.xproto
index e08cf34..847bc23 100644
--- a/xos/synchronizer/models/rcord.xproto
+++ b/xos/synchronizer/models/rcord.xproto
@@ -63,9 +63,9 @@
         help_text = "Subscriber MAC Address",
         max_length = 256];
     required int32 tech_profile_id = 23 [
-        help_text = "Technology profile id to be used along with Technology type to retreive the profile",
-        min_value = 0,
-        max_value = 65535];
+        help_text = "Technology profile id to be used along with Technology type to retreive the profile. Make sure that the profile ID specified exists for the technology this subscriber's OLT is using.",
+        min_value = 64,
+        max_value = 255];
 
     // operator specific fields
     optional string nas_port_id = 20 [