| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- from django.db.models import Q
- from .choices import FHRPGroupProtocolChoices, IPAddressRoleChoices
- #
- # VRFs
- #
- # Per RFC 4364 section 4.2, a route distinguisher may be encoded as one of the following:
- # * Type 0 (16-bit AS number : 32-bit integer)
- # * Type 1 (32-bit IPv4 address : 16-bit integer)
- # * Type 2 (32-bit AS number : 16-bit integer)
- # 21 characters are sufficient to convey the longest possible string value (255.255.255.255:65535)
- # Also used for RouteTargets
- VRF_RD_MAX_LENGTH = 21
- #
- # Prefixes
- #
- PREFIX_LENGTH_MIN = 1
- PREFIX_LENGTH_MAX = 127 # IPv6
- #
- # IPAddresses
- #
- IPADDRESS_ASSIGNMENT_MODELS = Q(
- Q(app_label='dcim', model='interface') |
- Q(app_label='ipam', model='fhrpgroup') |
- Q(app_label='virtualization', model='vminterface')
- )
- IPADDRESS_MASK_LENGTH_MIN = 1
- IPADDRESS_MASK_LENGTH_MAX = 128 # IPv6
- IPADDRESS_ROLES_NONUNIQUE = (
- # IPAddress roles which are exempt from unique address enforcement
- IPAddressRoleChoices.ROLE_ANYCAST,
- IPAddressRoleChoices.ROLE_VIP,
- IPAddressRoleChoices.ROLE_VRRP,
- IPAddressRoleChoices.ROLE_HSRP,
- IPAddressRoleChoices.ROLE_GLBP,
- IPAddressRoleChoices.ROLE_CARP,
- )
- #
- # FHRP groups
- #
- FHRPGROUPASSIGNMENT_PRIORITY_MIN = 0
- FHRPGROUPASSIGNMENT_PRIORITY_MAX = 255
- FHRP_PROTOCOL_ROLE_MAPPINGS = {
- FHRPGroupProtocolChoices.PROTOCOL_VRRP2: IPAddressRoleChoices.ROLE_VRRP,
- FHRPGroupProtocolChoices.PROTOCOL_VRRP3: IPAddressRoleChoices.ROLE_VRRP,
- FHRPGroupProtocolChoices.PROTOCOL_HSRP: IPAddressRoleChoices.ROLE_HSRP,
- FHRPGroupProtocolChoices.PROTOCOL_GLBP: IPAddressRoleChoices.ROLE_GLBP,
- FHRPGroupProtocolChoices.PROTOCOL_CARP: IPAddressRoleChoices.ROLE_CARP,
- FHRPGroupProtocolChoices.PROTOCOL_OTHER: IPAddressRoleChoices.ROLE_VIP,
- }
- #
- # VLANs
- #
- # 12-bit VLAN ID (values 0 and 4095 are reserved)
- VLAN_VID_MIN = 1
- VLAN_VID_MAX = 4094
- # models values for ContentTypes which may be VLANGroup scope types
- VLANGROUP_SCOPE_TYPES = (
- 'region', 'sitegroup', 'site', 'location', 'rack', 'clustergroup', 'cluster',
- )
- #
- # Services
- #
- SERVICE_ASSIGNMENT_MODELS = Q(
- Q(app_label='dcim', model='device') |
- Q(app_label='ipam', model='fhrpgroup') |
- Q(app_label='virtualization', model='virtualmachine')
- )
- # 16-bit port number
- SERVICE_PORT_MIN = 1
- SERVICE_PORT_MAX = 65535
|