Related Documentation
Constraints as NIC Data Types
Constraints are data types that a resolver uses when it executes a role. You can define:
- Multiple constraints for a role—Software performs an OR operation to determine whether the constraint is met.
- Multiple data types in a constraint—Software performs an AND operation to determine whether the multiple constraints are met.
Constraints can be either mandatory or optional. If a constraint is mandatory and the resolver for the role does not receive an appropriate value in the data request, the resolver must obtain the constraint value from other NIC resolvers. However, if a constraint is optional and the resolver for the role does not receive an appropriate value in the data request, the resolver can execute its role without the constraint value. In this case, the resolver may obtain multiple values for the data key, and the NIC host responds to the NIC proxy as follows:
- If the request is for multiple results, the host provides all the results.
- If the request is for one result and the resolution process returns different results, the host returns an error message.
- If the resolution process returns multiple instances of the same result, the resolver provides only one result.
For example, if you want to obtain an SAE reference for a subscriber’s IP address, you could define the following roles:
- From the IP address, determine the VR (mandatory constraint IpPool).
- From the VR, determine the SAE that manages that VR.
Because the first step has a mandatory constraint, the resolver for this role must use the IP pool supplied in the request, or obtain the IP pool from another resolver that determines IP pools from IP addresses. So you must define an extra step at the start of the resolution process:
- From the IP address, determine the IP pool.
- From the IP address, determine the VR (mandatory constraint IpPool).
- From the VR, determine the SAE that manages that VR.