Module connect

connect

  • License: Inmanta EULA

  • Version: 3.0.1

Typedefs

typedef connect::backend_type
  • Base type string

  • Type constraint (self in ['LDP', 'EVPN'])

typedef connect::connection_type
  • Base type string

  • Type constraint (self in ['POINT_TO_POINT', 'MULTIPOINT'])

typedef connect::services::user_network_interface::encapsulation_type
  • Base type string

  • Type constraint (self in ['untagged', 'dot1q', 'qinq'])

typedef connect::evc_id
  • Base type std::ascii_word

  • Type constraint ((std::length(self) >= 1) and (std::length(self) <= 45))

typedef connect::vlan_id_list_type
  • Base type string

  • Type constraint (self in ['LIST', 'ALL', 'UNTAGGED'])

typedef connect::vlan_id_type
  • Base type int

  • Type constraint std::validate_type('pydantic.conint',self,{'ge': 1, 'le': 4094})

typedef connect::constraints::service_name_t
  • Base type string

  • Type constraint (self in ['carrierEthernetEvc', 'DirectInternetAccess', 'L3VPN'])

typedef connect::fsm::active_state_t
  • Base type string

  • Type constraint (self in ['creating', 'up', 'updating', 'deleting'])

typedef connect::fsm::deploy_mode_t
  • Base type string

  • Type constraint (self in ['skip', 'fail', 'enforce'])

typedef connect::fsm::state_t
  • Base type string

  • Type constraint (self in ['gone', 'creating', 'up', 'updating', 'deleting'])

typedef connect::infra::device_kind_t
  • Base type string

  • Type constraint (self in ['nokia-sros', 'nokia-srlinux', 'cisco-xe', 'cisco-xr', 'juniper-mx', 'nokia-nfmp', 'ciena', 'tibit-olt', 'tibit-ont', 'snmp', 'mikrotik'])

typedef connect::services::l3vpn::routing_protocol_t
  • Base type string

  • Type constraint (self in ['static', 'bgp'])

typedef connect::services::l2_connect::encapsulation_t
  • Base type string

  • Type constraint (self in ['dot1q', 'qinq', 'untagged'])

typedef connect::services::l2_connect::mac_address_t
  • Base type string

  • Type constraint std::validate_type('pydantic.constr',self,{'regex': '^([0-9a-fA-F]{2}(?::?[0-9a-fA-F]{2}){5})$', 'strict': True})

typedef connect::services::l2_connect::mpls_backend_t
  • Base type string

  • Type constraint (self in ['LDP', 'EVPN'])

typedef connect::services::l2_connect::mpls_p2p_service_t
  • Base type string

  • Type constraint (self in ['vpls', 'vpws'])

typedef connect::services::l2_connect::segment_type_t
  • Base type string

  • Type constraint (self in ['vpls', 'vpws', 'ring', 'bridge', 'link', 'pon'])

typedef connect::services::l2_connect::vlan_tag_type
  • Base type string

  • Type constraint /^(auto)|(untagged)|(((\d+)|[*])([.]((\d+)|[*]))?)$/

typedef connect::services::l3vpn::techno_t
  • Base type string

  • Type constraint (self in ['LDP', 'SR-MPLS'])

typedef connect::services::user_network_interface::lag_id_type
  • Base type string

  • Type constraint /^((\d+)|auto)$/

typedef connect::services::user_network_interface::port_speed_t
  • Base type string

  • Type constraint (self in ['100M', '1G', '10G', '100G'])

Entities

entity connect::CarrierEthernetEvc

Parents: connect::CarrierEthernetService, lsm::ServiceBase

An EVC is an association of two or more EVC End Points (EVC EPs). Reference MEF 10.4 Section 7.8 Ethernet Virtual Connection, EVC End Point and EVC EP Map Service Attribute.

attribute connect::evc_id identifier

Used to identify an EVC within the SP Network. Reference MEF 10.4 Section 8.1 EVC ID Service Attribute.

attribute lsm::attribute_modifier identifier__modifier='rw'
attribute std::positive_int? service_id=null
attribute lsm::attribute_modifier service_id__modifier='r'
relation connect::CarrierEthernetEvcEndPoint evcEndPoints [2:*]

Pointer to EvcEndPoint.

other end: connect::CarrierEthernetEvcEndPoint._carrierEthernetEvc [1]

relation std::Resource shared_network_resources [0:*]

Relation holding network resources that are shared between multiple services

relation std::Resource service_network_resources [0:*]

Relation holding network resources that are only used by this service

relation connect::Ext_networkBackend ext_networkBackend [1]

other end: connect::Ext_networkBackend._parent_service [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::CarrierEthernetEvcEndPoint

Parents: lsm::EmbeddedEntity, lsm::ServiceBase

An EvcEndPoint is a construct at a UNI that selects a subset of the Service Frames that pass over the UNI.An EvcEndPoint represents the logical attachment of an Evc to a UNI. Reference MEF 10.4 Section 10 EVC EP Service Attributes.

attribute connect::evc_id identifier

A string that is used to allow the Subscriber and Service Provider to uniquely identify the EvcEndPoint for operations purposes. Reference MEF 10.4 Section 10.1 EVC EP ID Service Attribute.

attribute lsm::attribute_modifier identifier__modifier='rw'
attribute dict? allocated_uni=null

A dictionary holding the allocated values of the endpoint uni.

attribute lsm::attribute_modifier allocated_uni__modifier='r'
relation connect::CarrierEthernetEvc _carrierEthernetEvc [1]

Pointer to EvcEndPoint.

other end: connect::CarrierEthernetEvc.evcEndPoints [2:*]

relation connect::CarrierEthernetEvcEndPoint _peer [0:1]

other end: connect::CarrierEthernetEvcEndPoint._peer [0:1]

relation connect::EgressBwpFlow egressBandwidthProfilePerEndPoint [0:*]

Attribute used to limit the rate of all Egress Service Frames mapped to an EVC EP at a UNI. Reference MEF 10.4 Section 10.10 EVC EP Egress Bandwidth Profile Service Attribute.

other end: connect::EgressBwpFlow._endpoint [1]

relation connect::infra::UserNetworkInterface _uni [1]
relation connect::VlanIdListOrUntag evcEndPointMap [1]

other end: connect::VlanIdListOrUntag._endpoint [1]

relation connect::CarrierEthernetSubscriberUniRef carrierEthernetSubscriberUni [1]
relation connect::CarrierEthernetEvcEndPointProvider providers [0:*]

The different part of the vpn that should be configured for this endpoint

other end: connect::CarrierEthernetEvcEndPointProvider._parent [1]

relation std::Resource endpoint_network_resources [0:*]

Relation holding network resources that are only used by this endpoint

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::CarrierEthernetEvcEndPointProvider

Parents: std::Entity

Base entity for other entities for VPNs

attribute string backend_type

The type of backend to use for this endpoint

attribute bool multi_homed

Whether the side of the service this provider is on is multi-homed.

attribute bool local_switching

Whether the router this provider is on also has the other side of the circuit attached to it.

attribute bool first_endpoint

Whether this provider is on the side that we consider to be the first.

attribute int local_tag

The local eth tag.

attribute int remote_tag

The remote eth tag.

attribute int? mep_id

The identifier for the mep on this provider. Or null if eth-cfm configuration is not enabled.

attribute string? mep_mac_address

The mac address for the local mep of this provider. Or null if eth-cfm configuration is not enabled.

attribute bool purge_resources

Whether the provider should cleanup the resources it manages.

attribute bool own_service=false

Whether this provider can consider it owns the configuration of this service on the device. This means that it can freely create/delete any part of the service that might be shared between multiple providers of this service. This should always be true when active_service is true.

attribute bool active_service=false

Whether this provider is part of the service current desired state, as defined in the active_attributes of the service.

relation connect::CarrierEthernetEvcEndPoint _parent [1]

The different part of the vpn that should be configured for this endpoint

other end: connect::CarrierEthernetEvcEndPoint.providers [0:*]

relation connect::infra::Port port [1]

The port this part of the vpn should be configured on

relation connect::CarrierEthernetEvcEndPointProvider peer_providers [0:*]

The providers attached to the peer of our endpoint. We only consider there the “relevant” providers. The relevant providers are those who activaly deploy the configuration of the service (in opposition to some cleanup helpers that might have been instantiated for endpoint migration.)

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::CarrierEthernetEvcService

Parents: connect::CarrierEthernetEvc, lsm::ServiceEntity

The following implements statements select implementations for this entity:

  • constraint true

entity connect::CarrierEthernetService

Parents: std::Entity

attribute connect::connection_type connectionType
attribute lsm::attribute_modifier connectionType__modifier='rw'
entity connect::CarrierEthernetSubscriberUniRef

Parents: lsm::EmbeddedEntity

attribute string href

The following implements statements select implementations for this entity:

entity connect::EgressBwpFlow

Parents: lsm::EmbeddedEntity

Bandwidth Profile for egress interfaces that support the tuple set of cir, cirMax, rank and envelope.

attribute std::positive_int cir

Attribute represents Committed Information Rate. When added to unused committed bandwidth provided from higher-ranked Bandwidth Profile Flows (depending on the value of CF for the higher-ranked Bandwidth Profile Flows), limits the average rate in bits per second at which Service Frames for this Bandwidth Profile Flow can be declared Green.

attribute lsm::attribute_modifier cir__modifier='rw'
relation connect::CarrierEthernetEvcEndPoint _endpoint [1]

Attribute used to limit the rate of all Egress Service Frames mapped to an EVC EP at a UNI. Reference MEF 10.4 Section 10.10 EVC EP Egress Bandwidth Profile Service Attribute.

other end: connect::CarrierEthernetEvcEndPoint.egressBandwidthProfilePerEndPoint [0:*]

The following implements statements select implementations for this entity:

entity connect::Ext_networkBackend

Parents: lsm::EmbeddedEntity

The entity represents network backend

attribute connect::backend_type? type=null

Can be LDP or EVPN

attribute string _selected_type
relation connect::CarrierEthernetEvc _parent_service [1]

other end: connect::CarrierEthernetEvc.ext_networkBackend [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::ExternalWait

Parents: std::PurgeableResource

Dummy resource used to keep a service in a state that would normally be transient. It is always creating ‘skipped’ resource.

attribute string name_or_id

Name for resource identification

attribute string agent_name
attribute bool send_event=true
attribute bool purge_on_delete=false

The following implements statements select implementations for this entity:

entity connect::VlanId

Parents: lsm::EmbeddedEntity

Data type with single attribute, vlanId which is defined as a PostiveInteger. Value 1 to 4094. Ref-erence MEF 10.4 Section 10.4 EVC EP Map Service Attribute and MEF 26.2 Section 14.9 Opera-tor UNI Default CE-VLAN ID Service Attribute.

attribute connect::vlan_id_type vlanId

The vlan id to match on this endpoint.

attribute connect::vlan_id_type? ext_innerVlanId=null

A second vlan tag to match on this endpoint.

relation connect::VlanIdListOrUntag _vlanList [1]

There is a constraint on this relation: constraints::check_vlan_id_number raise an exception if we don’t have exactly one VlandId in this relation. We do it like this to match the spec of the northbound api. (This element should be a list, not a single object)

other end: connect::VlanIdListOrUntag.vlanIdList [0:*]

The following implements statements select implementations for this entity:

entity connect::VlanIdListOrUntag

Parents: lsm::EmbeddedEntity

VLAN ID types, ALL for all VLAN IDs, LIST for a list of VLAN IDs, EXCEPT for all VLAN IDs except the listed, UNTAGGED to indicate that untagged and priority-tagged frames are mapped to this end point. Reference MEF 10.4 Section 10.4 EVC EP Map Service Attribute.

attribute connect::vlan_id_list_type type
attribute connect::encapsulation_type? ext_encapsulation=null

The type of encapsulation to configure for this interface. If set to null, picks dot1q of qinq depending on the other attributes: - type == ‘ALL’ –> dot1q - type == ‘LIST’ –> qinq The value is ignored when type == ‘UNTAGGED’

relation connect::CarrierEthernetEvcEndPoint _endpoint [1]

other end: connect::CarrierEthernetEvcEndPoint.evcEndPointMap [1]

relation connect::VlanId vlanIdList [0:*]

There is a constraint on this relation: constraints::check_vlan_id_number raise an exception if we don’t have exactly one VlandId in this relation. We do it like this to match the spec of the northbound api. (This element should be a list, not a single object)

other end: connect::VlanId._vlanList [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::constraints::ServiceSupportedDeviceKindsHolder

Parents: std::Entity

Entity dedicated for each service to store supported device kinds

To register a new supported device kind, the model should attach one more instance of SupportedDeviceKind entity to the relation supported_device_kinds of this entity. All the supported device kinds names can be accessed in the kinds attribute of this entity.

attribute connect::constraints::service_name_t service_name
attribute connect::infra::device_kind_t[] kinds
relation connect::constraints::SupportedDeviceKind supported_device_kinds [0:*]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::constraints::SupportedDeviceKind

Parents: std::Entity

This entity can be used to register a new supported vendor kind. It should be instanciated in the top level sub-module which adds support for this kind and be attached to the supported kind holder defined above.

..code-block:

holder = SupportedDeviceKindsHolder()
holder.supported_device_kinds += SupportedDeviceKind(name='Nokia')
attribute string name

The following implements statements select implementations for this entity:

entity connect::fsm::DeployMode

Parents: connect::fsm::StateOption

The following implements statements select implementations for this entity:

  • constraint true

entity connect::fsm::InnerState

Parents: connect::fsm::StateOption

The following implements statements select implementations for this entity:

  • constraint true

entity connect::fsm::LifecycleFactory

Parents: std::Entity

Entity to help construct feature-full lifecycles.

attribute string name
attribute bool with_deletion_validation
attribute bool with_forced_deletion
attribute bool with_update
attribute bool with_update_dryrun=false
attribute bool with_update_rollback=false
attribute bool with_update_confirmation=false
attribute bool with_maintenance
attribute bool with_repair=true
relation lsm::LifecycleStateMachine lifecycle [1]

Constructed lifecycle entity, to be used in lsm entity bindings.

relation connect::fsm::State _up_inprogress [1]
relation connect::fsm::State _up [1]
relation connect::fsm::State _warning [1]
relation connect::fsm::State _repairing_inprogress [0:1]
relation connect::fsm::State _repairing_failed [0:1]
relation connect::fsm::State _repairing_done [0:1]
relation connect::fsm::State _updating_inprogress [0:1]
relation connect::fsm::State _updating_failed [0:1]
relation connect::fsm::State _updating_done [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::fsm::ServiceBase

Parents: lsm::ServiceBase

Base entity for any part of a service, this extends the definition from the lsm module to add the state of the service part to it. Different parts of a service can have different states, for example when an embedded entity is added or removed.

attribute connect::fsm::active_state_t _state

The effective state of the service. That should dictate how its model is unrolled.

attribute connect::fsm::deploy_mode_t _mode

The deploy mode to enable on the resources of the service. That should dictate how its desired state is enforced.

attribute string _path

The dict path expression leading to this part of the service.

The following implements statements select implementations for this entity:

  • constraint true

entity connect::fsm::State

Parents: lsm::State

relation connect::fsm::InnerState service_state [1]

This option contains the operational state that the service should be considered to be in.

relation connect::fsm::DeployMode deploy_mode [1]

This option contains the deploy mode resources which are part of the service should follow when being deployed.

The following implements statements select implementations for this entity:

  • constraint true

entity connect::fsm::StateOption

Parents: std::Entity

Entity holding a value specific to a state, which can vary depending on the compile that the service is being pulled in.

attribute string on_export

The value to use when the compile is an exporting compile.

attribute string? on_validate_self=null

The value to use when the compile is a validation compile and the current service is being validated.

attribute string on_validate_others

The value to use when the compile is a validation compile and another service is being validated.

The following implements statements select implementations for this entity:

entity connect::fsm::VoidEntity

Parents: lsm::ServiceEntity

A service entity that should never have any implementations other than the ones of its parent. This is used to emit a entity when the service being unrolled in the model is actually in a “gone” state.

The following implements statements select implementations for this entity:

  • constraint true

entity connect::infra::Device

Parents: std::Entity

A managed device reachable and configurable in the infra.

attribute std::ipv4_address mgmt_ip

The mgmt ip to which the orchestrator can reach the device

attribute std::port mgmt_port

The mgmt port to which the orchestrator can reach the device

attribute string vendor

The vendor of the device

attribute string model

The model of the device

attribute string os

The operating system of the device

attribute string version

The version of the device

attribute string username_env

The name of the environment variable containing the username that should be used to connect to the device

attribute string password_env

The name of the environment variable containing the password that should be used to connect to the device

attribute connect::infra::device_kind_t _kind

An attribute that should not be provided by the user, it shows which kind of device this instance is belonging to. This is later used to see if a specific device is supported by the project using the connect module.

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::infra::NetworkElement

Parents: std::Entity

This entity models the inventory data of a Network Equimpent (NE). The NE is the physical equipment of the Service Provider.

attribute string id

The identifier of the network equipment

attribute string name

The name of the network equipment

attribute std::ipv4_address router_ip

The network equipment ip address

attribute string href='#'

A link to an external resource representing the network element

relation connect::infra::Device device [1]

The managed device the network element is build upon

relation connect::infra::Port ports [0:*]

The network element to which this port is attached

other end: connect::infra::Port.network_element [1]

relation nokia_sros::NetconfDevice nokia_device [0:1]

Relation to the netconf device that will be used to configure the node.

relation cisco_xr::NetconfDevice cisco_xr_device [0:1]

Relation to the netconf device that will be used to configure the node.

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::infra::Port

Parents: std::Entity

attribute string id

An id of a port.

attribute string name

A name of a port.

attribute string href='#'

A link to an external resource representing the port

relation connect::infra::NetworkElement network_element [1]

The network element to which this port is attached

other end: connect::infra::NetworkElement.ports [0:*]

The following implements statements select implementations for this entity:

entity connect::infra::UserNetworkInterface

Parents: std::Entity

This entity models the inventory data of a User Network Interface (UNI). The UNI is the physical demarcation point between the responsibility of the Subscriber (UNI-C, the Customer Edge or CE) and the responsibility of the Service Provider (UNI-N).

attribute string id

The value of the Subscriber UNI ID Service Attribute is a string that is used to allow the Subscriber and Service Provider to uniquely identify the UNI for operations purposes.

attribute int? lag_id=null
attribute string? es_id=null
attribute string? es_name=null
relation connect::infra::Port ports [0:*]

The ports this uni is composed of

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::inventory::netbox::NetboxInterface

Parents: netbox::resources::Interface

L2connect interface has a netbox subinterface resource that requires the parent interface from the uni service. However they are not in same resource set so they cannot depend on each other. This entity resolves this issue by not selecting netbox::resources::interface_parent implementation. One limitation is that we loose the dependency at the resource level, which means the parent interface may be deployed after the subinterface during repair.

The following implements statements select implementations for this entity:

entity connect::inventory::netbox::NetboxPrefix

Parents: netbox::resources::Prefix

The following implements statements select implementations for this entity:

  • constraint true

entity connect::inventory::netbox::NetboxVRF

Parents: netbox::resources::VRF

The following implements statements select implementations for this entity:

  • constraint true

entity connect::main::ServiceBuilder

Parents: std::Entity

This entity allow to build all the connect services.

TODO: Once it has been defined, it sould also get an additonal relation,

holding the configuration of the network.

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::direct_internet_access::DirectInternetAccess

Parents: connect::fsm::ServiceBase

Direct Internet Access service

This service creates a VRF for a customer. Routes to the Internet and prefixes assigned to the customer (prefixes attribute) are leaked between default and customer’s VRFs.

attribute string identifier

Unique identifier of the service.

attribute lsm::attribute_modifier identifier__modifier='rw'
attribute connect::services::direct_internet_access::routing_protocol_t routing_protocol

Routing protocol used to exchange route information with customer.

attribute lsm::attribute_modifier routing_protocol__modifier='rw'
attribute std::ipv_any_network[] prefixes

List of prefixes assigned to customer.

attribute lsm::attribute_modifier prefixes__modifier='rw+'
attribute int? bgp_remote_as=null

Customer’s BGP AS number

attribute lsm::attribute_modifier bgp_remote_as__modifier='rw'
attribute std::positive_int? service_id=null

Set the service_id of the vprn configuration.

attribute lsm::attribute_modifier service_id__modifier='r'
relation connect::services::direct_internet_access::DirectInternetAccessEndPoint endpoints [1:*]

other end: connect::services::direct_internet_access::DirectInternetAccessEndPoint._dia [1]

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::direct_internet_access::DirectInternetAccessEndPoint

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

Direct Internet Access Endpoint

attribute string identifier

Identifier of the endpoint.

attribute lsm::attribute_modifier identifier__modifier='rw'
attribute connect::vlan_id_type vlan_id

VLAN id used for communication with customer.

attribute lsm::attribute_modifier vlan_id__modifier='rw'
attribute std::ipv_any_network? p2p_network=null

P2P network used on provider-customer edge. The first IP is assigned on provider’s device, second one should be used by customer.

attribute lsm::attribute_modifier p2p_network__modifier='r'
attribute int bfd_interval=0

BFD interval in ms. Set to 0 to disable BFD.

attribute lsm::attribute_modifier bfd_interval__modifier='rw+'
relation connect::services::direct_internet_access::DirectInternetAccess _dia [1]

other end: connect::services::direct_internet_access::DirectInternetAccess.endpoints [1:*]

relation connect::services::user_network_interface::UserNetworkInterface uni [1]

An instance of User Network Interface service that identifies physical access port

other end: connect::services::user_network_interface::UserNetworkInterface._dia_endpoint [0:*]

relation connect::infra::UserNetworkInterface _uni [1]
relation connect::services::direct_internet_access::DirectInternetAccessEndPointProvider providers [0:*]

other end: connect::services::direct_internet_access::DirectInternetAccessEndPointProvider._parent [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::direct_internet_access::DirectInternetAccessEndPointProvider

Parents: std::Entity

Base entity for vendor-specific implementations of Direct Internet Access service

attribute connect::fsm::state_t _state
attribute std::ipv_any_network p2p_network

IP network for P2P connection

attribute std::ipv_any_interface p2p_pe_interface

IP address with prefixlen of provider P2P interface

attribute std::ipv_any_address p2p_ce_address

IP address of customer in P2P network

attribute std::ipv_any_interface p2p_ce_interface

IP address with prefixlen of provider P2P interface

attribute std::ipv_any_address p2p_pe_address

IP address of provider in P2P network

attribute string vrf_name

Routing instance name

relation connect::services::direct_internet_access::DirectInternetAccessEndPoint _parent [1]

other end: connect::services::direct_internet_access::DirectInternetAccessEndPoint.providers [0:*]

relation connect::infra::Port port [1]
relation connect::infra::Port cpe_port [0:1]
relation connect::services::direct_internet_access::DirectInternetAccessEndPointProvider peer_providers [0:*]
relation nokia_srlinux::GnmiDevice _srlinux_device [0:1]
relation nokia_srlinux::Resource _srlinux_resource [0:1]
relation nokia_srlinux::interface::Subinterface _srlinux_subinterface [0:1]
relation nokia_srlinux::NetworkInstance _srlinux_vrf [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::direct_internet_access::DirectInternetAccessService

Parents: connect::services::direct_internet_access::DirectInternetAccess, lsm::ServiceEntity

This entity extends the DirectInternetAccess entity, and exposes it to the lsm api.

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::direct_internet_access::lsm::DirectInternetAccessServiceBuilder

Parents: std::Entity

Entity carrying the service attributes of the connection and doing the proper unwrapping, creating the corresponding DirectInternetAccessService entity.

attribute dict assignment

The assignment dict coming out of lsm::all

attribute connect::fsm::state_t state

The desired state for this instance of the service. This state already takes into account whether the service is in a validation compile or not, and whether it is being validated or not.

attribute connect::fsm::deploy_mode_t deploy_mode

The deploy mode resources of the service should follow when they detect a change.

relation lsm::ServiceEntityBindingV2 binding [1]

The binding that was used to query all of the service instances.

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::Connection

Parents: connect::fsm::ServiceBase

This entity represents an l2 connection in between two endpoints (each referencing a uni). The entity can be instantiated via the lsm api (using the ConnectionService superclass) or in the model, using this entity.

attribute connect::evc_id identifier

The unique identifier of the service.

attribute lsm::attribute_modifier identifier__modifier='rw'
attribute std::positive_int bandwidth

The bandwidth (kbps SI) that should be configured for the connection between each endpoints.

attribute lsm::attribute_modifier bandwidth__modifier='rw+'
attribute std::positive_int? service_id=null

A unique service id, automatically allocated.

attribute lsm::attribute_modifier service_id__modifier='r'
attribute string documentation=''
attribute lsm::attribute_modifier documentation__modifier='r'
dict connect::services::l2_connect::Connection.documentation__annotations={'web_presentation': 'documentation', 'web_title': 'Topology', 'web_icon': 'FaNetworkWired', 'web_content_type': 'text/markdown'}
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation connect::services::l2_connect::Endpoint endpoints [2:*]

The set of endpoints that compose the connection.

other end: connect::services::l2_connect::Endpoint._connection [1]

relation connect::services::l2_connect::Parameters parameters [1]

Parameters to tweak the implementation of the service in the network.

other end: connect::services::l2_connect::Parameters._connection [1]

relation connect::services::l2_connect::Details details [1]

The refinement of this connection.

other end: connect::services::l2_connect::Details._connection [1]

relation connect::services::l2_connect::Segment _segments [0:*]

The different parts of the connection creating the end to end connectivity.

other end: connect::services::l2_connect::Segment._connection [1]

relation connect::services::l2_connect::NetworkElementInfo _network_elements [0:*]

The different network elements involved in the configuration of the service.

other end: connect::services::l2_connect::NetworkElementInfo._connection [1]

relation connect::services::l2_connect::Node _nodes [0:*]

The group of interfaces representing all the logical nodes in the connection.

other end: connect::services::l2_connect::Node._connection [1]

relation fnt::resources::ServiceSam fnt_service_sam [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::ConnectionService

Parents: connect::services::l2_connect::Connection, lsm::ServiceEntity

This entity extends the Connection entity, and exposes it to the lsm api.

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::l2_connect::Details

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

Base entity wrapping all the read-only connection refinements, such as the nodes, segments and network elements used to compose the service. The sole purpose of this entity is to not overload the top level service with read-only attributes the end-user won’t need.

relation connect::services::l2_connect::Connection _connection [1]

The refinement of this connection.

other end: connect::services::l2_connect::Connection.details [1]

relation connect::services::l2_connect::Segment segments [0:*]

The different parts of the connection creating the end to end connectivity.

other end: connect::services::l2_connect::Segment._details [1]

relation connect::services::l2_connect::NetworkElementInfo network_elements [0:*]

The different network elements involved in the configuration of the service.

other end: connect::services::l2_connect::NetworkElementInfo._details [1]

relation connect::services::l2_connect::Node nodes [0:*]

The group of interfaces representing all the logical nodes in the connection.

other end: connect::services::l2_connect::Node._details [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::Endpoint

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

attribute connect::evc_id identifier

The unique identifier of this endpoint among the other endpoints of a connection.

attribute lsm::attribute_modifier identifier__modifier='rw'
attribute connect::evc_id? node_id=null
attribute lsm::attribute_modifier node_id__modifier='r'
attribute connect::services::l2_connect::vlan_tag_type vlan='auto'

The vlan that should be configured on the port of the previously mentioned equipment. The supported values are: - untagged: untagged traffic - : any dot1q traffic - X: dot1q traffic with given outer (X) vlan - *.: any qinq traffic - X.*: any qinq traffic within given outer (X) vlan - X.Y: qinq traffic with given outer (X) and inner (Y) vlans equipment.

attribute lsm::attribute_modifier vlan__modifier='rw'
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
attribute string[]? __lsm_key_attributes=List()
relation connect::services::l2_connect::Connection _connection [1]

The set of endpoints that compose the connection.

other end: connect::services::l2_connect::Connection.endpoints [2:*]

relation connect::services::user_network_interface::UserNetworkInterface uni [1]

The user network equipment service that allows us to find the device and port that should be configured for this end of the connection.

relation connect::services::l2_connect::Node _node [1]

Relation to the node where this edge of the l2 connect is attached.

other end: connect::services::l2_connect::Node._endpoint [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::Interface

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

One of the interfaces that needs to be configured on a node to deploy a full segment.

attribute connect::evc_id identifier

The identifier of this interface within this network element.

attribute lsm::attribute_modifier identifier__modifier='r'
attribute string name

The name of this interface, identifying it within a node.

attribute lsm::attribute_modifier name__modifier='r'
attribute connect::evc_id node_id

The node this interface is in. Grouped interfaces can be part of a lag, or not. They are grouped to represent better the connections in between segments of a service.

attribute lsm::attribute_modifier node_id__modifier='r'
attribute connect::services::l2_connect::vlan_tag_type? vlan

The vlan configured on that interface for the creation of the service it is part of.

attribute lsm::attribute_modifier vlan__modifier='r'
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation connect::services::l2_connect::Segment _segment [1]

Helper relation containing all the interfaces that a segment connects

other end: connect::services::l2_connect::Segment._interfaces [0:*]

relation connect::services::l2_connect::NetworkElement _network_element [1]

The set of interfaces on this node that should be configured for deploying this segment.

other end: connect::services::l2_connect::NetworkElement.interfaces [0:*]

relation connect::services::l2_connect::Node _node [1]

Auto-populated relation to link this relation to its node.

other end: connect::services::l2_connect::Node._interfaces [1:*]

relation connect::services::l2_connect::Interface _peers [0:*]

Other interfaces within the same segment which are in the same node as this one.

relation connect::services::l2_connect::Interface _neighbors [0:*]

Other interfaces in other segments which are in the same node as this one.

relation connect::infra::Port _port [1]

Internal object commonly used inside the connect module (and related modules) to represent a port. This relation is automatically populated.

relation nokia_srlinux::Interface srlinux_interface [0:1]

Relation to the configuration of the interface on the device.

relation nokia_srlinux::interface::Subinterface srlinux_subinterface [0:1]

Relation to the unit that should be part of the segment config.

relation snmp::Port snmp_port [0:1]

Relation to the port on the device corresponding to this service interface

relation juniper_mx::interfaces::Interface juniper_interface [0:1]

Relation to the configuration of the interface on the device.

relation juniper_mx::interfaces::interface::Unit juniper_interface_unit [0:1]

Relation to the unit that should be part of the segment config.

relation cisco_xr::InterfaceConfiguration cisco_xr_interface [0:1]

The configuration of the cisco interface on which one of the segment terminates.

relation netbox::resources::Interface _netbox_interface [1]

The netbox interface that is managed for our service.

relation fnt::resources::LogicalPortSupportType2 fnt_logical_port [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::NetworkElement

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

One of the nodes involved in a segment.

attribute connect::evc_id identifier

The identifier of this network element within this segment. The identifier should also match the identifier of a network element of the connection.

attribute lsm::attribute_modifier identifier__modifier='r'
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation tibit::NetconfDevice tibit_device [0:1]

Relation to the netconf device that will be used to configure the node.

relation tibit::Resource tibit_resource [0:1]

Relation to the netconf resource that will be used to configure the node.

relation connect::services::l2_connect::Segment _segment [1]

The termination points of the segment

other end: connect::services::l2_connect::Segment.network_elements [0:*]

relation connect::services::l2_connect::Interface interfaces [0:*]

The set of interfaces on this node that should be configured for deploying this segment.

other end: connect::services::l2_connect::Interface._network_element [1]

relation connect::services::l2_connect::NetworkElementInfo _info [0:1]

Auto-populated relation to the network element containing the information about this node’s device.

other end: connect::services::l2_connect::NetworkElementInfo._network_elements [1:*]

relation connect::services::l2_connect::NetworkElementOptions _connect_options [1]

other end: connect::services::l2_connect::NetworkElementOptions.network_element [1]

relation nokia_srlinux::GnmiDevice srlinux_device [0:1]

Relation to the netconf device that will be used to configure the node.

relation nokia_srlinux::Resource srlinux_resource [0:1]

Relation to the netconf resource that will be used to configure the node.

relation nokia_srlinux::acl::AclFilter srlinux_mac_address_filter [0:1]
relation snmp::Device snmp_device [0:1]

Relation to the snmp device, required to configure any resource on the network element

relation nokia_sros::Resource nokia_l2_connect_resource [0:1]

Relation to the netconf resource that will be used to configure l2_connect on that device.

relation nokia_sros::filter::MacFilter nokia_mac_filter [0:1]

Relation to the mac filter configuration for this service on this ne.

relation nokia_sros::service::Epipe nokia_epipe [0:1]
relation nokia_sros::service::Vpls nokia_vpls [0:1]
relation juniper_mx::NetconfDevice juniper_device [0:1]

Relation to the netconf device that will be used to configure the node.

relation juniper_mx::Resource juniper_resource [0:1]

Relation to the netconf resource that will be used to configure the node.

relation std::Entity juniper_mac_address_service_filter [0:1]

Relation to the netconf resource that will be used to configure the node.

relation std::Entity juniper_mac_address_default_filter [0:1]

Relation to the netconf resource that will be used to configure the node.

relation cisco_xr::Resource cisco_xr_l2_connect_resource [0:1]

Relation to the netconf resource that will be used to configure l2_connect on that device.

relation cisco_xr::policy_manager::PolicyMap cisco_xr_output_qos [0:1]
relation cisco_xr::policy_manager::PolicyMap cisco_xr_input_qos [0:1]
relation cisco_xr::es_acl::Access cisco_xr_es_acl_access [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::NetworkElementInfo

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

Information about a network element where service configuration will need to be pushed.

attribute connect::evc_id identifier

The unique identifier of this network element within this service.

attribute lsm::attribute_modifier identifier__modifier='r'
attribute std::ipv4_address router_ip

The unique internal ip of the router

attribute lsm::attribute_modifier router_ip__modifier='r'
attribute string name

A user friendly name of the network element

attribute lsm::attribute_modifier name__modifier='r'
attribute string href
attribute lsm::attribute_modifier href__modifier='r'
attribute dict device

The device information.

attribute lsm::attribute_modifier device__modifier='r'
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation connect::services::l2_connect::Connection _connection [1]

The different network elements involved in the configuration of the service.

other end: connect::services::l2_connect::Connection._network_elements [0:*]

relation connect::services::l2_connect::Details _details [1]

The different network elements involved in the configuration of the service.

other end: connect::services::l2_connect::Details.network_elements [0:*]

relation connect::services::l2_connect::NetworkElement _network_elements [1:*]

Auto-populated relation to the network element containing the information about this node’s device.

other end: connect::services::l2_connect::NetworkElement._info [0:1]

relation connect::infra::NetworkElement _infra_network_element [1]
relation connect::infra::Device _device [1]
relation netbox::resources::Device _netbox_device [1]

If netbox documentation is enabled, each device will have to be documented in netbox.

relation fnt::EntityABC fnt_chassis [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::NetworkElementOptions

Parents: std::Entity

attribute int? rd=null
relation connect::services::l2_connect::NetworkElement network_element [1]

other end: connect::services::l2_connect::NetworkElement._connect_options [1]

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::Node

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

A grouping of interfaces, potentially from different segments and nodes but all representing the same logical connection place in the network. A node could be a lag, or a pair of interfaces involved in a ring, or ?

attribute connect::evc_id identifier

The natural identifier of the node, reused across multiple instances of the services.

attribute lsm::attribute_modifier identifier__modifier='r'
attribute string vlan_pool

The name of the vlan pool within which the allocated vlan should be unique.

attribute lsm::attribute_modifier vlan_pool__modifier='r'
attribute int vlan_pool_token

The token representing the usage of the yet to be allocated vlan in the pool. Nodes sharing a vlan pool can either share a token, or not.

attribute lsm::attribute_modifier vlan_pool_token__modifier='r'
attribute connect::services::l2_connect::encapsulation_t encapsulation

The type of encapsulation that should be used for segment’s interfaces which are part of this node.

attribute lsm::attribute_modifier encapsulation__modifier='r'
attribute int? outer_vlan

The allocated outer vlan for this node.

attribute lsm::attribute_modifier outer_vlan__modifier='r'
attribute int? inner_vlan
attribute lsm::attribute_modifier inner_vlan__modifier='r'
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation connect::services::l2_connect::Connection _connection [1]

The group of interfaces representing all the logical nodes in the connection.

other end: connect::services::l2_connect::Connection._nodes [0:*]

relation connect::services::l2_connect::Endpoint _endpoint [0:1]

Relation to the node where this edge of the l2 connect is attached.

other end: connect::services::l2_connect::Endpoint._node [1]

relation connect::services::l2_connect::Details _details [1]

The group of interfaces representing all the logical nodes in the connection.

other end: connect::services::l2_connect::Details.nodes [0:*]

relation connect::services::l2_connect::Segment _segments [0:*]

Helper relation containing all the nodes that a segment connects

other end: connect::services::l2_connect::Segment._nodes [0:*]

relation connect::services::l2_connect::Interface _interfaces [1:*]

Auto-populated relation to link this relation to its node.

other end: connect::services::l2_connect::Interface._node [1]

relation netbox::resources::Vlan _netbox_outer_vlan [0:1]

If netbox documentation is enabled, each device will have to be documented in netbox.

relation fnt::EntityABC fnt_vlan [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::Parameters

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

Entity containing different parameters the end-user can tweak to influence the implementation of this service in the network.

attribute connect::services::l2_connect::mpls_backend_t mpls_backend='EVPN'

The backend technology to use for the forwarding of labels across the core network for this service instance. Can be either LDP or EVPN.

attribute lsm::attribute_modifier mpls_backend__modifier='rw'
attribute connect::services::l2_connect::mpls_p2p_service_t mpls_p2p_service='vpws'

The type of service to use for point-to-point connections across a core network. Can be vpws or vpls.

attribute lsm::attribute_modifier mpls_p2p_service__modifier='rw+'
attribute connect::services::l2_connect::mac_address_t[] mac_address_blocklist=List()

A list of mac address that should be blocked on the different elements of the connection.

attribute lsm::attribute_modifier mac_address_blocklist__modifier='rw+'
relation connect::services::l2_connect::Connection _connection [1]

Parameters to tweak the implementation of the service in the network.

other end: connect::services::l2_connect::Connection.parameters [1]

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::l2_connect::Segment

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

A part of the full l2 connection.

attribute connect::evc_id identifier

The identifier of this segment within this service.

attribute lsm::attribute_modifier identifier__modifier='r'
attribute connect::services::l2_connect::segment_type_t type

The type of segment this is, which specifies the type of configuration that should be pushed in the network to set up this segment.

attribute lsm::attribute_modifier type__modifier='r'
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation connect::services::l2_connect::Connection _connection [1]

The different parts of the connection creating the end to end connectivity.

other end: connect::services::l2_connect::Connection._segments [0:*]

relation connect::services::l2_connect::Details _details [1]

The different parts of the connection creating the end to end connectivity.

other end: connect::services::l2_connect::Details.segments [0:*]

relation connect::services::l2_connect::NetworkElement network_elements [0:*]

The termination points of the segment

other end: connect::services::l2_connect::NetworkElement._segment [1]

relation connect::services::l2_connect::Node _nodes [0:*]

Helper relation containing all the nodes that a segment connects

other end: connect::services::l2_connect::Node._segments [0:*]

relation connect::services::l2_connect::Interface _interfaces [0:*]

Helper relation containing all the interfaces that a segment connects

other end: connect::services::l2_connect::Interface._segment [1]

relation connect::services::l2_connect::SegmentOptions _connect_options [1]

other end: connect::services::l2_connect::SegmentOptions.segment [1]

relation fnt::resources::ServiceAsset fnt_service_asset [0:1]
relation fnt::EntityABC fnt_service_asset_cis [0:*]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::SegmentOptions

Parents: std::Entity

Options allocated for any time of segment.

attribute connect::services::l2_connect::mpls_backend_t? mpls_backend=null
attribute int? evi=null
attribute int? rt=null
relation connect::services::l2_connect::Segment segment [1]

other end: connect::services::l2_connect::Segment._connect_options [1]

The following implements statements select implementations for this entity:

entity connect::services::l2_connect::lsm::ConnectionServiceBuilder

Parents: std::Entity

Entity carrying the service attributes of the connection and doing the proper unwrapping, creating the corresponding ConnectionService entity.

attribute dict assignment

The assignment dict coming out of lsm::all

attribute connect::fsm::state_t state

The desired state for this instance of the service. This state already takes into account whether the service is in a validation compile or not, and whether it is being validated or not.

attribute connect::fsm::deploy_mode_t deploy_mode

The deploy mode resources of the service should follow when they detect a change.

relation lsm::ServiceEntityBindingV2 binding [1]

The binding that was used to query all of the service instances.

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l3vpn::L3VPN

Parents: connect::fsm::ServiceBase

L3VPN service

This service creates an L3 VPN between defined endpoints.

attribute string identifier

Unique identifier of the service.

attribute lsm::attribute_modifier identifier__modifier='rw'
attribute int? rd_number=null

RD number. Attribute will be allocated if left empty

attribute lsm::attribute_modifier rd_number__modifier='rw+'
attribute int? route_target=null

Route Target. Attribute will be allocated if left empty

attribute lsm::attribute_modifier route_target__modifier='rw+'
attribute int bandwidth=0

Bandwidth applied to each endpoint

attribute lsm::attribute_modifier bandwidth__modifier='rw+'
attribute std::ipv4_network[] allowed_ipv4_networks=List()

Allowed IPv4 networks (firewall on each endpoint)

attribute lsm::attribute_modifier allowed_ipv4_networks__modifier='rw+'
attribute std::ipv6_network[] allowed_ipv6_networks=List()

Allowed IPv6 networks (firewall on each endpoint)

attribute lsm::attribute_modifier allowed_ipv6_networks__modifier='rw+'
attribute string documentation=''
attribute lsm::attribute_modifier documentation__modifier='r'
dict connect::services::l3vpn::L3VPN.documentation__annotations={'web_presentation': 'documentation', 'web_title': 'Topology', 'web_icon': 'FaNetworkWired', 'web_content_type': 'text/markdown'}
relation connect::services::l3vpn::L3VPNEndPoint endpoints [1:*]

other end: connect::services::l3vpn::L3VPNEndPoint._l3vpn [1]

relation connect::services::l3vpn::Parameters parameters [1]

Parameters to tweak the implementation of the service in the network.

other end: connect::services::l3vpn::Parameters._l3vpn [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l3vpn::L3VPNEndPoint

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

L3VPN Endpoint

attribute string identifier

Endpoint identifier

attribute lsm::attribute_modifier identifier__modifier='rw'
attribute connect::vlan_id_type vlan_id

VLAN id used for communication with customer.

attribute lsm::attribute_modifier vlan_id__modifier='rw'
attribute int bfd_interval=0

BFD interval in ms. Set to 0 to disable BFD.

attribute lsm::attribute_modifier bfd_interval__modifier='rw+'
attribute connect::services::l3vpn::routing_protocol_t routing_protocol

Routing protocol used to exchange route information with customer.

attribute lsm::attribute_modifier routing_protocol__modifier='rw'
attribute int? bgp_remote_as=null

BGP AS number used on CPE

attribute lsm::attribute_modifier bgp_remote_as__modifier='rw'
relation connect::services::l3vpn::L3VPN _l3vpn [1]

other end: connect::services::l3vpn::L3VPN.endpoints [1:*]

relation connect::services::user_network_interface::UserNetworkInterface uni [1]

An instance of User Network Interface service that identifies physical access port

other end: connect::services::user_network_interface::UserNetworkInterface._l3vpn_endpoint [0:*]

relation connect::infra::UserNetworkInterface _uni [1]
relation connect::services::l3vpn::L3VPNEndPointProvider providers [0:*]

other end: connect::services::l3vpn::L3VPNEndPointProvider._parent [1]

relation connect::services::l3vpn::L3VPNIPv4Config ipv4 [1]

other end: connect::services::l3vpn::L3VPNIPv4Config._endpoint [1]

relation connect::services::l3vpn::L3VPNIPv6Config ipv6 [0:1]

other end: connect::services::l3vpn::L3VPNIPv6Config._endpoint [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l3vpn::L3VPNEndPointProvider

Parents: std::Entity

Base entity for vendor-specific implementations of L3VPN endpoint

attribute connect::fsm::state_t _state
attribute bool remove_shared_cfg
attribute int local_as
attribute std::ipv_any_network p2p_network
attribute std::ipv_any_interface p2p_pe_interface
attribute std::ipv_any_address p2p_ce_address
attribute std::ipv_any_interface p2p_ce_interface
attribute std::ipv_any_address p2p_pe_address
attribute std::ipv_any_network? p2p_network_v6
attribute std::ipv_any_interface? p2p_pe_interface_v6
attribute std::ipv_any_address? p2p_ce_address_v6
attribute std::ipv_any_interface? p2p_ce_interface_v6
attribute std::ipv_any_address? p2p_pe_address_v6
attribute std::ipv4_network[] prefixes_v4
attribute std::ipv6_network[] prefixes_v6
relation nokia_srlinux::GnmiDevice _srlinux_device [0:1]
relation nokia_srlinux::Resource _srlinux_resource [0:1]
relation nokia_srlinux::interface::Subinterface _srlinux_subinterface [0:1]
relation nokia_srlinux::NetworkInstance _srlinux_vrf [0:1]
relation connect::services::l3vpn::L3VPNEndPoint _parent [1]

other end: connect::services::l3vpn::L3VPNEndPoint.providers [0:*]

relation connect::infra::Port port [1]
relation connect::infra::Port cpe_port [0:1]
relation connect::services::l3vpn::L3VPNEndPointProvider peer_providers [0:*]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::l3vpn::L3VPNIPv4Config

Parents: lsm::EmbeddedEntity

IPv4 Config of L3VPN endpoint

attribute std::ipv4_network? p2p_network=null

P2P network used on provider-customer edge. The first IP is assigned on provider’s device, second one should be used by customer. Attribute will be allocated if left empty

attribute lsm::attribute_modifier p2p_network__modifier='rw+'
attribute std::ipv4_network[] prefixes=List()

List of prefixes assigned to customer

attribute lsm::attribute_modifier prefixes__modifier='rw+'
relation connect::services::l3vpn::L3VPNEndPoint _endpoint [1]

other end: connect::services::l3vpn::L3VPNEndPoint.ipv4 [1]

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::l3vpn::L3VPNIPv6Config

Parents: lsm::EmbeddedEntity

IPv6 Config of L3VPN endpoint

attribute std::ipv6_network? p2p_network=null

P2P network used on provider-customer edge. The first IP is assigned on provider’s device, second one should be used by customer. Attribute will be allocated if left empty

attribute lsm::attribute_modifier p2p_network__modifier='rw+'
attribute std::ipv6_network[] prefixes=List()

List of prefixes assigned to customer

attribute lsm::attribute_modifier prefixes__modifier='rw+'
relation connect::services::l3vpn::L3VPNEndPoint _endpoint [1]

other end: connect::services::l3vpn::L3VPNEndPoint.ipv6 [0:1]

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::l3vpn::L3VPNService

Parents: connect::services::l3vpn::L3VPN, lsm::ServiceEntity

This entity extends the L3VPN entity, and exposes it to the lsm api.

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::l3vpn::Parameters

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

Entity containing different parameters the end-user can tweak to influence the implementation of this service in the network.

attribute connect::services::l3vpn::techno_t? transport_technology='LDP'

L3VPN transport technology to use.

attribute lsm::attribute_modifier transport_technology__modifier='rw+'
relation connect::services::l3vpn::L3VPN _l3vpn [1]

Parameters to tweak the implementation of the service in the network.

other end: connect::services::l3vpn::L3VPN.parameters [1]

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::l3vpn::lsm::L3VPNServiceBuilder

Parents: std::Entity

Entity carrying the service attributes of the connection and doing the proper unwrapping, creating the corresponding L3VPNService entity.

attribute dict assignment

The assignment dict coming out of lsm::all

attribute connect::fsm::state_t state

The desired state for this instance of the service. This state already takes into account whether the service is in a validation compile or not, and whether it is being validated or not.

attribute connect::fsm::deploy_mode_t deploy_mode

The deploy mode resources of the service should follow when they detect a change.

relation lsm::ServiceEntityBindingV2 binding [1]

The binding that was used to query all of the service instances.

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::user_network_interface::Port

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

attribute string port_name

The name of the port, used as identifier and vendor specific.

attribute lsm::attribute_modifier port_name__modifier='rw'
attribute connect::services::user_network_interface::port_speed_t? port_speed=null

The speed to set the port to, if auto negotiation is enabled, this acts as the maximum speed the port should accept in the negotiation.

attribute lsm::attribute_modifier port_speed__modifier='rw+'
attribute bool? auto_negotiation=null

Whether the speed of the port should be negotiated automatically.

attribute lsm::attribute_modifier auto_negotiation__modifier='rw+'
attribute string? port_id=null

A unique internal identifier for the port.

attribute lsm::attribute_modifier port_id__modifier='r'
attribute string device_name

Reference of the device, usually the name, on which the port is located.

attribute lsm::attribute_modifier device_name__modifier='rw'
attribute dict? network_element=null

Information about the device where the port is located. Retrieved via allocation using device_name.

attribute lsm::attribute_modifier network_element__modifier='r'
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation connect::services::user_network_interface::UserNetworkInterface _uni [1]

List of port references, minimum one, room for extension with LAG (Link aggregation).

other end: connect::services::user_network_interface::UserNetworkInterface.ports [1:*]

relation connect::infra::Port _infra_port [1]

Port of the uni.

relation nokia_sros::Resource nokia_uni_resource [0:1]

Relation to the netconf resource that will be used to configure the uni on that device.

relation netbox::resources::Device _netbox_device [1]
relation netbox::resources::Interface _netbox_main_interface [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::user_network_interface::UniDetails

Parents: lsm::EmbeddedEntity, connect::fsm::ServiceBase

attribute connect::services::user_network_interface::lag_id_type lag_id='auto'

The id of the lag, if set to auto it is allocated and the value is saved in allocated_lag_id attribute. For single-homed unis, the allocated value will be -1, which will be recognized internally as “not a lag-id”, for multi-homed unis, the allocated value will be picked from the lag range specified in the config.

attribute lsm::attribute_modifier lag_id__modifier='rw'
attribute int? allocated_lag_id=null

Lag id retrieved via allocation.

attribute lsm::attribute_modifier allocated_lag_id__modifier='r'
attribute string? es_id=null

Ethernet segment id, provided by user.

attribute lsm::attribute_modifier es_id__modifier='rw'
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation connect::services::user_network_interface::UserNetworkInterface _uni [1]

Details about the uni LAG and ethernet segment, relevant only in case of multi-homed Uni.

other end: connect::services::user_network_interface::UserNetworkInterface.details [1]

The following implements statements select implementations for this entity:

  • constraint true

entity connect::services::user_network_interface::UserNetworkInterface

Parents: connect::fsm::ServiceBase

attribute string name

The name of the network interface, used as identifier.

attribute lsm::attribute_modifier name__modifier='rw'
attribute int mtu

Maximum transmission size of the interface.

attribute lsm::attribute_modifier mtu__modifier='rw+'
attribute connect::services::user_network_interface::encapsulation_type encapsulation

Type of encapsulation supported.

attribute lsm::attribute_modifier encapsulation__modifier='rw+'
attribute string documentation=''
attribute lsm::attribute_modifier documentation__modifier='r'
dict connect::services::user_network_interface::UserNetworkInterface.documentation__annotations={'web_presentation': 'documentation', 'web_title': 'Topology', 'web_icon': 'FaNetworkWired', 'web_content_type': 'text/markdown'}
attribute dict options={}

Additional options specific to this part of the service. This is a free-form dict.

attribute lsm::attribute_modifier options__modifier='r'
relation connect::services::user_network_interface::Port ports [1:*]

List of port references, minimum one, room for extension with LAG (Link aggregation).

other end: connect::services::user_network_interface::Port._uni [1]

relation connect::services::user_network_interface::UniDetails details [1]

Details about the uni LAG and ethernet segment, relevant only in case of multi-homed Uni.

other end: connect::services::user_network_interface::UniDetails._uni [1]

relation connect::infra::UserNetworkInterface _infra_uni [1]

Infrastructure uni entity.

relation connect::infra::NetworkElement _infra_network_elements [0:*]

Relation to all the network elements used in this uni

relation connect::services::direct_internet_access::DirectInternetAccessEndPoint _dia_endpoint [0:*]

An instance of User Network Interface service that identifies physical access port

other end: connect::services::direct_internet_access::DirectInternetAccessEndPoint.uni [1]

relation connect::services::l3vpn::L3VPNEndPoint _l3vpn_endpoint [0:*]

An instance of User Network Interface service that identifies physical access port

other end: connect::services::l3vpn::L3VPNEndPoint.uni [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::user_network_interface::UserNetworkInterfaceService

Parents: connect::services::user_network_interface::UserNetworkInterface, lsm::ServiceEntity

This entity extends the UserNetworkInterface entity, and exposes it to the lsm api.

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::services::user_network_interface::lsm::UserNetworkInterfaceServiceBuilder

Parents: std::Entity

Entity carrying the service attributes of the connection and doing the proper unwrapping, creating the corresponding UserNetworkInterfaceService entity.

attribute dict assignment

The assignment dict coming out of lsm::all

attribute connect::fsm::state_t state

The desired state for this instance of the service. This state already takes into account whether the service is in a validation compile or not, and whether it is being validated or not.

attribute connect::fsm::deploy_mode_t deploy_mode

The deploy mode resources of the service should follow when they detect a change.

relation lsm::ServiceEntityBindingV2 binding [1]

The binding that was used to query all of the service instances.

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::used_values_aggregator::ServiceUsedValues

Parents: std::Entity

Contains the necessary attributes to retrieve all the used_values of a specific service type attribute.

attribute string attributes_path

The path of the attribute where to check the used_values.

relation lsm::ServiceEntityBindingV2 binding [1]

Binding of the service.

relation connect::used_values_aggregator::UsedValuesAggregator aggregator [1]

The different used_values of the service, one per service type.

other end: connect::used_values_aggregator::UsedValuesAggregator.service_used_values [0:*]

The following implements statements select implementations for this entity:

entity connect::used_values_aggregator::UsedValuesAggregator

Parents: std::Entity

Aggregate all the used_values of a specific attribute across different service types. The main used case is when the allocation of a service attribute is also constrained by the attribute from another service.

relation connect::used_values_aggregator::ServiceUsedValues service_used_values [0:*]

The different used_values of the service, one per service type.

other end: connect::used_values_aggregator::ServiceUsedValues.aggregator [1]

The following implements statements select implementations for this entity:

entity connect::vendors::YangEnvCredentials

Parents: std::Entity

https://code.inmanta.com/solutions/modules/yang/-/issues/107

The yang credentials doesn’t have any index, which means that if we create multiple idetncial devices (which have an index) they will aggregate into one entity, but the credentials won’t.

This entity is a workaround, its constructor can be called as much as needed, it will be contracted with index on username and password.

attribute string username_env_var

The env var on the agent that contains the credentials to log into the device.

attribute string password_env_var

The env var on the agent that contains the credentials to log into the device.

relation yang::Credentials credentials [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::cisco::xe::CiscoEndPointProvider

Parents: connect::CarrierEthernetEvcEndPointProvider

relation cisco_xe::NetconfDevice _device [1]
relation cisco_xe::Resource _resource [1]
relation cisco_xe::native::policy::PolicyMap _policy_map [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::cisco::xr::carrier_ethernet_evc::CiscoEndPointProvider

Parents: connect::CarrierEthernetEvcEndPointProvider

relation cisco_xr::NetconfDevice _device [1]
relation cisco_xr::Resource _resource [1]
relation cisco_xr::InterfaceConfiguration _interface [1]
relation cisco_xr::l2vpn::database::xconnect_group::P2pXconnect _xconnect [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::cisco::xr::l3vpn::L3VPNEndPointProvider

Parents: connect::services::l3vpn::L3VPNEndPointProvider

attribute string vrf_name
attribute string bgp_import_policy_name
attribute string bgp_export_policy_name
attribute string bgp_import_prefix_set_name
relation cisco_xr::NetconfDevice _device [1]
relation cisco_xr::Resource _resource [1]
relation cisco_xr::Resource _global_bgp_resource [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::juniper::direct_internet_access::DIAEndPointProvider

Parents: connect::services::direct_internet_access::DirectInternetAccessEndPointProvider

relation juniper_mx::NetconfDevice _device [1]
relation juniper_mx::Resource _resource [1]
relation juniper_mx::interfaces::Interface _interface [1]
relation juniper_mx::interfaces::interface::Unit _unit [1]
relation juniper_mx::routing_instances::Instance _routing_instance [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::juniper::l3vpn::L3VPNEndPointProvider

Parents: connect::services::l3vpn::L3VPNEndPointProvider

attribute string vrf_name

Routing instance name

attribute string bgp_import_policy_name
attribute string bgp_export_policy_name
relation juniper_mx::NetconfDevice _device [1]
relation juniper_mx::Resource _resource [1]
relation juniper_mx::interfaces::Interface _interface [1]
relation juniper_mx::interfaces::interface::Unit _unit [1]
relation juniper_mx::routing_instances::Instance _routing_instance [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::nokia::YangEnvCredentials

Parents: std::Entity

https://code.inmanta.com/solutions/modules/yang/-/issues/107

The yang credentials doesn’t have any index, which means that if we create multiple idetncial devices (which have an index) they will aggregate into one entity, but the credentials won’t.

This entity is a workaround, its constructor can be called as much as needed, it will be contracted with index on username and password.

This is a duplicated of connect::vendors::YangEnvCredentials. We can’t drop it as it is a breaking change, to be done in next major version bump. https://code.inmanta.com/solutions/modules/connect/-/issues/151

attribute string username_env_var

The env var on the agent that contains the credentials to log into the device.

attribute string password_env_var

The env var on the agent that contains the credentials to log into the device.

relation yang::Credentials credentials [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::nokia::carrier_ethernet_evc::NokiaEndPointProvider

Parents: connect::CarrierEthernetEvcEndPointProvider

relation nokia_sros::NetconfDevice _device [1]
relation nokia_sros::Resource _resource [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

  • constraint true

entity connect::vendors::nokia::carrier_ethernet_evc::NokiaMPEndPointProvider

Parents: connect::vendors::nokia::carrier_ethernet_evc::NokiaEndPointProvider

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::nokia::carrier_ethernet_evc::NokiaP2PEndPointProvider

Parents: connect::vendors::nokia::carrier_ethernet_evc::NokiaEndPointProvider

attribute bool configure_endpoint_attribute
relation nokia_sros::service::Epipe _epipe [0:1]
relation nokia_sros::service::epipe::Sap _sap [0:1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::nokia::direct_internet_access::DIAEndPointProvider

Parents: connect::services::direct_internet_access::DirectInternetAccessEndPointProvider

attribute string customer_prefix_list_name
attribute int? service_id=null
relation nokia_sros::NetconfDevice _device [1]
relation nokia_sros::Resource _resource [1]
relation nokia_sros::service::Vprn _vprn [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

entity connect::vendors::nokia::l3vpn::L3VPNEndPointProvider

Parents: connect::services::l3vpn::L3VPNEndPointProvider

attribute string vrf_name
attribute string bgp_import_policy_name
attribute string bgp_export_policy_name
attribute string bgp_import_prefix_list_name
relation nokia_sros::NetconfDevice _device [1]
relation nokia_sros::Resource _resource [1]
relation nokia_sros::service::Vprn _vprn [1]

The following implementations are defined for this entity:

The following implements statements select implementations for this entity:

Implementations

implementation connect::backendTypeSelection
implementation connect::carrierEthernetEvcEndPoint
implementation connect::carrierEthernetEvc_resource_set
implementation connect::constraints::check_endpoints_number
implementation connect::constraints::check_provider_vendor_support_dia

Ensure any instance of DirectInternetAccess endpoint will be assigned a provider.

implementation connect::constraints::check_provider_vendor_support_evc

Make sure that any instance of a carrier ethernet evc endpoint will be assigned a provider. If it is not the case, we raise a proper exception about it.

implementation connect::constraints::check_vlan_id_number
Per request on this ticket: https://code.inmanta.com/solutions/modules/connect/-/issues/2

> evcEndPointMap with only supported type LIST and the vlanIdList exactly one vlan tag

implementation connect::constraints::gather_supported_device_kinds
implementation connect::fsm::base
implementation connect::fsm::maintenance
implementation connect::fsm::rollback
implementation connect::fsm::update
implementation connect::infra::resolve_device_kind
implementation connect::infra::constraints::assert_single_uni_port
implementation connect::inventory::fnt::l2_connect::connection
implementation connect::inventory::fnt::l2_connect::interface
implementation connect::inventory::fnt::l2_connect::network_element
implementation connect::inventory::fnt::l2_connect::node
implementation connect::inventory::fnt::l2_connect::segment
implementation connect::inventory::netbox::direct_internet_access::document_dia_provider
implementation connect::inventory::netbox::l2_connect::bridge
implementation connect::inventory::netbox::l2_connect::device
implementation connect::inventory::netbox::l2_connect::full_interface
implementation connect::inventory::netbox::l2_connect::l2vpn
implementation connect::inventory::netbox::l2_connect::node
implementation connect::inventory::netbox::l2_connect::sub_interface

Document the sub interfaces for each interface in each segment.

implementation connect::inventory::netbox::l3vpn::l3vpn_netbox
implementation connect::inventory::netbox::user_network_interface::resolve_netbox_network_element

Resolve the device, site and interface that our endpoint is deployed on.

implementation connect::main::unroll_lsm_services
implementation connect::services::direct_internet_access::diaEndPoint
implementation connect::services::direct_internet_access::dia_fill_common_attributes
implementation connect::services::direct_internet_access::lsm::active
implementation connect::services::direct_internet_access::lsm::gone
implementation connect::services::direct_internet_access::lsm::validate_uni_deletion

For each uni instance being deleted, validate it is not used by any DIA instance.

implementation connect::services::l2_connect::interface_port
implementation connect::services::l2_connect::network_element_device
implementation connect::services::l2_connect::resolve_references

Resolve the references defined in the different allocated objects.

implementation connect::services::l2_connect::validate_ldp_backend

When ldp backend is selected, validate that no interface of a vpls/vpws segment is multi-homed.

implementation connect::services::l2_connect::validate_vlan

Validate that vlan has correct format depending on the uni encapsulation

implementation connect::services::l2_connect::wire_embedded_entities_parents

Make sure that all the embedded entities of the service have the relation towards their parent set.

implementation connect::services::l2_connect::lsm::active
implementation connect::services::l2_connect::lsm::gone
implementation connect::services::l2_connect::lsm::network_element_options
implementation connect::services::l2_connect::lsm::segment_options
implementation connect::services::l2_connect::lsm::validate_uni_deletion

For each uni instance being deleted, validate it is not used by any DIA instance.

implementation connect::services::l3vpn::diaEndPoint
implementation connect::services::l3vpn::fill_provider_values
implementation connect::services::l3vpn::wire_embedded_entities_parents

Make sure that all the embedded entities of the service have the relation towards their parent set.

implementation connect::services::l3vpn::lsm::active
implementation connect::services::l3vpn::lsm::gone
implementation connect::services::l3vpn::lsm::validate_uni_deletion

For each uni instance being deleted, validate it is not used by any L3VPN instance.

implementation connect::services::user_network_interface::create_infra

Create the connect::infra::UserNetworkInterface containing all the information about this uni, and attach it to our service.

implementation connect::services::user_network_interface::wire_embedded_entities_parents

Make sure that all the embedded entities of the service have the relation towards their parent set.

implementation connect::services::user_network_interface::lsm::active
implementation connect::services::user_network_interface::lsm::gone
implementation connect::vendors::eth_cfm

Compute the mep id and mac address for this provider.

implementation connect::vendors::resolve_peer_providers

Get all the providers which are part of the main configuration of the service, on the other side of the service with respect to our endpoint.

implementation connect::vendors::resolve_provider_attributes
implementation connect::vendors::yang_credentials

Attach the yang::Credentials entity to our workaround entity;

implementation connect::vendors::cisco::xe::cisco_device

Load the cisco device for this endpoint. The device entity might be reused by different endpoints on the same device. Also create the resource that will contain all the service specific configuration for this device.

implementation connect::vendors::cisco::xe::device_global_interface

As soon as we start managing a device in the network, we must make sure that any later configuration we deploy will not change the shared global resources. So we need to already emit the evpn-bgp base config even if no carrier ethernet is deployed on the device yet.

implementation connect::vendors::cisco::xe::endpoint_policymap
implementation connect::vendors::cisco::xe::ldp_xconnect
implementation connect::vendors::cisco::xe::carrier_ethernet_evc::build_point_to_point_providers
implementation connect::vendors::cisco::xr::bw_policy
implementation connect::vendors::cisco::xr::device_shared

Configure all the parts of the configuration which are shared between different services, it must be present in the global configuration at all time.

implementation connect::vendors::cisco::xr::interface
implementation connect::vendors::cisco::xr::l2_connect_resource

Setup the device connection for this node.

implementation connect::vendors::cisco::xr::mac_address_filter
implementation connect::vendors::cisco::xr::network_element
implementation connect::vendors::cisco::xr::carrier_ethernet_evc::build_point_to_point_providers
implementation connect::vendors::cisco::xr::carrier_ethernet_evc::cisco_device

Load the cisco device for this endpoint. The device entity might be reused by different endpoints on the same device. Also create the resource that will contain all the service specific configuration for this device.

implementation connect::vendors::cisco::xr::carrier_ethernet_evc::eth_cfm

Configure eth_cfm on the service interface.

implementation connect::vendors::cisco::xr::carrier_ethernet_evc::evpn

Configure the evpn for our service.

implementation connect::vendors::cisco::xr::carrier_ethernet_evc::interface_configuration

Configure the vlan sub interface for our port.

implementation connect::vendors::cisco::xr::carrier_ethernet_evc::l2vpn

Configure the l2vpn on the side of our port.

implementation connect::vendors::cisco::xr::carrier_ethernet_evc::ldp

Configure ldp for our service.

implementation connect::vendors::cisco::xr::carrier_ethernet_evc::policies

Configure the bandwidth limitation on the port.

implementation connect::vendors::cisco::xr::l3vpn::build_providers
implementation connect::vendors::cisco::xr::l3vpn::l3vpn_base
implementation connect::vendors::cisco::xr::l3vpn::l3vpn_bgp
implementation connect::vendors::cisco::xr::l3vpn::l3vpn_device
implementation connect::vendors::cisco::xr::l3vpn::l3vpn_fill_common_attributes
implementation connect::vendors::cisco::xr::l3vpn::l3vpn_resource
implementation connect::vendors::cisco::xr::l3vpn::l3vpn_static
implementation connect::vendors::cisco::xr::l3vpn::set_resources
implementation connect::vendors::cisco::xr::vpls::evpn
implementation connect::vendors::cisco::xr::vpls::ldp
implementation connect::vendors::cisco::xr::vpws::evpn
implementation connect::vendors::cisco::xr::vpws::ldp
implementation connect::vendors::juniper::juniper_interface

Setup the physical interface on which services will be deployed.

implementation connect::vendors::juniper::juniper_interface_unit

Configure the unit that will be used to terminate the segment on this node. This unit may be used by multiple segments terminating on the same node so it is using a dedicated resource.

implementation connect::vendors::juniper::juniper_network_element

Setup the device connection for this node.

implementation connect::vendors::juniper::mac_address_filter
implementation connect::vendors::juniper::bridge::bridge
implementation connect::vendors::juniper::direct_internet_access::build_providers
implementation connect::vendors::juniper::direct_internet_access::dia_base
implementation connect::vendors::juniper::direct_internet_access::dia_bgp
implementation connect::vendors::juniper::direct_internet_access::dia_device
implementation connect::vendors::juniper::direct_internet_access::dia_fill_attributes
implementation connect::vendors::juniper::direct_internet_access::dia_resource
implementation connect::vendors::juniper::direct_internet_access::dia_static
implementation connect::vendors::juniper::direct_internet_access::set_resources
implementation connect::vendors::juniper::l3vpn::build_providers
implementation connect::vendors::juniper::l3vpn::l3vpn_base
implementation connect::vendors::juniper::l3vpn::l3vpn_bgp
implementation connect::vendors::juniper::l3vpn::l3vpn_device
implementation connect::vendors::juniper::l3vpn::l3vpn_fill_common_attributes
implementation connect::vendors::juniper::l3vpn::l3vpn_qos
implementation connect::vendors::juniper::l3vpn::l3vpn_resource
implementation connect::vendors::juniper::l3vpn::l3vpn_static
implementation connect::vendors::juniper::l3vpn::set_resources
implementation connect::vendors::juniper::ring::ring
implementation connect::vendors::juniper::vpls::evpn
implementation connect::vendors::juniper::vpls::ldp
implementation connect::vendors::juniper::vpws::evpn
implementation connect::vendors::juniper::vpws::ldp
implementation connect::vendors::mikrotik::bridge::bridge
implementation connect::vendors::mikrotik::user_network_interface::mikrotik_interface
implementation connect::vendors::nokia::l2_connect_resource

Setup the device connection for this node.

implementation connect::vendors::nokia::mac_address_filter
implementation connect::vendors::nokia::network_element
implementation connect::vendors::nokia::uni_resource

Setup the device connection for this node.

implementation connect::vendors::nokia::yang_credentials

Attach the yang::Credentials entity to our workaround entity;

implementation connect::vendors::nokia::carrier_ethernet_evc::build_multipoint_providers
implementation connect::vendors::nokia::carrier_ethernet_evc::build_point_to_point_providers
implementation connect::vendors::nokia::carrier_ethernet_evc::device_domain

As soon as we start managing a device in the network, we must make sure that any later configuration we deploy will not change the shared global resources. So we need to already emit the eth-cfm resource even if no carrier ethernet is deployed on the device yet.

implementation connect::vendors::nokia::carrier_ethernet_evc::device_evpn_base

As soon as we start managing a device in the network, we must make sure that any later configuration we deploy will not change the shared global resources. So we need to already emit the evpn-bgp base config even if no carrier ethernet is deployed on the device yet.

implementation connect::vendors::nokia::carrier_ethernet_evc::epipe_nokia

Configure the epipe on the device.

implementation connect::vendors::nokia::carrier_ethernet_evc::epipe_nokia_evpn
implementation connect::vendors::nokia::carrier_ethernet_evc::epipe_nokia_ldp
implementation connect::vendors::nokia::carrier_ethernet_evc::epipe_nokia_ldp_sdp

This implementation defines the SDP as an assertion that it exists is consistent for all services. If the SDP does not exist, it will be created by the orchestrator.

implementation connect::vendors::nokia::carrier_ethernet_evc::eth_cfm
implementation connect::vendors::nokia::carrier_ethernet_evc::multi_homing_ethernet_segment_all_active
implementation connect::vendors::nokia::carrier_ethernet_evc::nokia_device

Load the nokia device for this enpoint. This is done for every endpoint. Only the first one creates a new instance, all other instances are verfied to be identical.

implementation connect::vendors::nokia::carrier_ethernet_evc::set_configure_endpoint
implementation connect::vendors::nokia::carrier_ethernet_evc::vpls
implementation connect::vendors::nokia::direct_internet_access::build_providers
implementation connect::vendors::nokia::direct_internet_access::dia_base
implementation connect::vendors::nokia::direct_internet_access::dia_bgp
implementation connect::vendors::nokia::direct_internet_access::dia_device
implementation connect::vendors::nokia::direct_internet_access::dia_fill_attributes
implementation connect::vendors::nokia::direct_internet_access::dia_resource
implementation connect::vendors::nokia::direct_internet_access::dia_static
implementation connect::vendors::nokia::direct_internet_access::set_resources
implementation connect::vendors::nokia::l3vpn::build_providers
implementation connect::vendors::nokia::l3vpn::l3vpn_base
implementation connect::vendors::nokia::l3vpn::l3vpn_bgp
implementation connect::vendors::nokia::l3vpn::l3vpn_device
implementation connect::vendors::nokia::l3vpn::l3vpn_fill_common_attributes
implementation connect::vendors::nokia::l3vpn::l3vpn_qos
implementation connect::vendors::nokia::l3vpn::l3vpn_resource
implementation connect::vendors::nokia::l3vpn::l3vpn_static
implementation connect::vendors::nokia::l3vpn::set_resources
implementation connect::vendors::nokia::uni::ethernet_segment
implementation connect::vendors::nokia::uni::port
implementation connect::vendors::nokia::vpls::evpn
implementation connect::vendors::nokia::vpls::ldp
implementation connect::vendors::nokia::vpls::vpls
implementation connect::vendors::nokia::vpws::epipe
implementation connect::vendors::nokia::vpws::evpn
implementation connect::vendors::nokia::vpws::ldp
implementation connect::vendors::snmp::snmp_interface

Setup the interface on the device.

implementation connect::vendors::snmp::snmp_network_element

Setup the device connection for this ne.

implementation connect::vendors::snmp::bridge::bridge
implementation connect::vendors::srlinux::mac_address_filter
implementation connect::vendors::srlinux::srlinux_interface

Setup the physical interface on which services will be deployed.

implementation connect::vendors::srlinux::srlinux_network_element

Setup the device connection for this node.

implementation connect::vendors::srlinux::srlinux_subinterface

Configure the unit that will be used to terminate the segment on this node. This unit may be used by multiple segments terminating on the same node so it is using a dedicated resource.

implementation connect::vendors::srlinux::bridge::bridge
implementation connect::vendors::srlinux::direct_internet_access_cpe::configure_cpe
implementation connect::vendors::srlinux::direct_internet_access_cpe::configure_cpe_bgp
implementation connect::vendors::srlinux::direct_internet_access_cpe::configure_cpe_static
implementation connect::vendors::srlinux::l3vpn_cpe::configure_cpe
implementation connect::vendors::srlinux::l3vpn_cpe::configure_cpe_bgp
implementation connect::vendors::srlinux::l3vpn_cpe::configure_cpe_static
implementation connect::vendors::srlinux::ring::ring
implementation connect::vendors::tibit::tibit_network_element

Setup the device connection for this node.

implementation connect::vendors::tibit::pon::pon

Plugins

connect.all_l2_connections(binding: 'std::Entity') 'dict[]'

Unroll all l2Connect services, and make sure that all the segments required to deploy the service are created. This plugin is a substitute to lsm::all for this specific service. It can be used like lsm::all to create the service instances in the model.

Parameters:

binding – The binding defining the service in the lsm catalog.

connect.allocate_dia_p2p_network(service: 'lsm::ServiceEntity', attribute_path: 'string', *, used_values: 'any') 'std::ipv4_network'

Get the first p2p network (/31) from pools defined in config for DirectInternetAccess service.

Parameters:

used_values – A UsedValues object, as defined in inmanta_plugins.lsm.allocators.

connect.allocate_l3vpn_p2p_network_v4(service: 'lsm::ServiceEntity', attribute_path: 'string', previous_value: 'string?', *, used_values: 'any') 'std::ipv4_network'
connect.allocate_l3vpn_p2p_network_v6(service: 'lsm::ServiceEntity', attribute_path: 'string', previous_value: 'string?', *, used_values: 'any') 'std::ipv6_network'
connect.allocate_value(service: 'lsm::ServiceEntity', attribute_path: 'string', internal_path: 'string', *, value: 'any') 'any'

This simple allocator allows to store a value that we already know in the model in the service (mostly to make it more visible).

Parameters:

value – The value to save in the service attributes.

connect.cisco_mtu(mtu: 'int', tags_count: 'int') 'int'

Compute the mtu that should be configured for a service on a cisco interface given an expected traffic mtu and depending on the number of tags that ethernet frames have.

Parameters:
  • mtu – The desired mtu, for the ethernet frames content.

  • tags_count – The number of tags that the ethernet frames will have attached to them.

connect.convert_juniper_bandwith_value(value: 'int') 'string'

This plugin is required for juniper policer to convert bandwith-limit value in bits to a string representation that will not cause the dryrun to show a diff. For example, 1000 becomes 1k, 1000000 becomes 1m and 1000000000 becomes 1g.

connect.dedup(items: 'list') 'list'
connect.delete_file(web_dav_url: 'string')

Make sure that the file stored at the given url gets removed.

Parameters:

web_dav_url – The url where the file content should be cleared.

connect.determine_mac(end_point: 'connect::CarrierEthernetEvcEndPoint', port: 'infra::Port') 'string'

Calculate the local mac

connect.determine_mep_id(end_point: 'connect::CarrierEthernetEvcEndPoint', port: 'infra::Port') 'int'

Determine the mep_id for a port of an endpoint. The mep_id is the last octet of the ip of the router this port is on, except if this last octet is equal to zero, then the mep_id will be equal to 256. If a port of the other endpoint is also located on this router, then this additional step is applied:

  1. If the endpoint is on side A (its identifier is greater than it’s peer’s one) then return the calculated mep_id of the router.

  2. If the endpoint is on side B (its identifier is smaller than it’s peer’s one) then return the calculated mep_id of the router plus 1000.

If an endpoint has multiple ports on the same router, they will get the same mep_id. The value returned is an integer between 1 and 1256

connect.enumerate(objects: 'list', start: 'int' = 0) 'list'
connect.format(string: 'string', *args: 'any', **kwargs: 'any') 'string'

Format a string using python’s str.format method. Pass all positional and keyworkd arguments to the python function.

Parameters:

string – The format string

connect.get_allocated_lag_id(service: 'lsm::ServiceEntity', attribute_path: 'string', *, lag_id: 'string', n_ports: 'int', range_start: 'int', range_end: 'int', used_values: 'any') 'int'

Return the lag_id if it is specified, otherwise get the first free integer in the given lag_id range. If the lag_id is set to auto and the uni is not multi_home, we don’t allocate it but we return lag_id of -1 to clearly indicate that a valid lag couldn’t be allocated. This allocator contains duplicated logic from lsm allocator get_first_free_integer.

Parameters:
  • lag_id – The lag_id specified by user, if no value specified then it is equal to auto.

  • n_ports – The number of ports the uni service contains.

  • range_start – The lowest value that can be allocated.

  • range_end – The highest value that can be allocated.

  • used_values – A UsedValues object, as defined in inmanta_plugins.lsm.allocators.

connect.get_cisco_policy_rate(bandwidth: 'int') 'dict'

Compute the policy rate to configure on cisco devices for a given bandwidth. The returned value is a dict of two elements. The first one is the rate value and the second the rate unit.

Parameters:

bandwidth – The bandwidth, in kbps, to convert into cisco notation.

connect.get_config() 'dict'

Load the config file from the project and validate it using pydantic. Return it as a dict.

connect.get_documentation_data(connection: 'std::Entity') 'dict'

Helper plugin to structure the service data into a format that can easily be processed by the documentation template. This plugins will emit a dictionary containing the list of network elements, nodes and segments defined in the service, and order them to facilitate the rendering of mermaid diagrams. The approach is quite simple: 1. We build the path of nodes, from one endpoint to the other, order them according

to that path.

  1. For each node, we add the network elements it is deployed on to a queue, except if

    they have already been added.

  2. For each node, we add the segments that terminates on it to a queue, except if the

    segments have already been added.

connect.get_embedded_entity_state(parent_state: 'connect::fsm::active_state_t', attributes: 'dict') 'connect::fsm::active_state_t'
connect.get_first_free_integer(service: 'lsm::ServiceEntity', attribute_path: 'string', internal_path: 'string', *, range_start: 'int', range_end: 'int', used_values: 'any') 'int'

Get the first free integer in the given range.

Check all services of the same type as the provided service for the value at attribute_path. Services can be filtered out by using the filters parameter. The filters parameters take as key the path to an attribute in the service and as value the attribute value that the service is expected at this path. If the value is no match, the service is ignored.

Parameters:
  • range_start – The lowest value that can be allocated.

  • range_end – The highest value that can be allocated.

  • used_values – A UsedValues object, as defined in inmanta_plugins.lsm.allocators.

connect.get_instance_details_url(service_entity: <class 'str'>, service_name: <class 'str'>, service_id: <class 'str'>) <class 'str'>
connect.get_network_element(service: 'lsm::ServiceEntity', attribute_path: 'string', *, uni_ref: 'string', device_name: 'string') 'dict'

Allocator used to retrieve the network_element of a device in the appropriate inventory using the device_name.

connect.get_node_inner_vlan(service: 'lsm::ServiceEntity', attribute_path: 'string', *, input_vlan: 'string?', service_vlan_pool_usage: 'any', outer_vlan: 'int?') 'int?'

Get the outer vlan of a node, based on the input vlan and the available vlans. In the case of dot1q encapsulation, this should be the only vlan allocated. In the case of qinq encapsulation, a second, inner vlan, will be allocated.

The allocation logic is as follow: 1. If the input_vlan is not ‘auto’, we assume the user provided a valid vlan

and we select it without further validation.

  1. If the service already allocated a vlan in the pool for another node (values

    provided in service_vlan_pool_usage), we reuse it without further validation.

  2. No vlan pre-selected, we try go get the next one available in the range defined

    in the connect configuration file. Available vlans are known as the vlans not present in the global_vlan_pool_usage.

Parameters:
  • input_vlan – The user input that dictates whether we will need to allocate a vlan or not.

  • global_vlan_pool_usage – The global usage of vlans within the pool where we try to find a free vlan.

  • service_vlan_pool_usage – The service usage of vlans within the pool where we try to find a free vlan. If any vlan is present in that pool, we will reuse it.

connect.get_node_outer_vlan(service: 'lsm::ServiceEntity', attribute_path: 'string', *, input_vlan: 'string?', global_vlan_pool_usage: 'any', service_vlan_pool_usage: 'any') 'int?'

Get the outer vlan of a node, based on the input vlan and the available vlans. In the case of dot1q encapsulation, this should be the only vlan allocated. In the case of qinq encapsulation, a second, inner vlan, will be allocated.

The allocation logic is as follow: 1. If the input_vlan is not ‘auto’, we assume the user provided a valid vlan

and we select it without further validation.

  1. If the service already allocated a vlan in the pool for another node (values

    provided in service_vlan_pool_usage), we reuse it without further validation.

  2. No vlan pre-selected, we try go get the next one available in the range defined

    in the connect configuration file. Available vlans are known as the vlans not present in the global_vlan_pool_usage.

Parameters:
  • input_vlan – The user input that dictates whether we will need to allocate a vlan or not.

  • global_vlan_pool_usage – The global usage of vlans within the pool where we try to find a free vlan.

  • service_vlan_pool_usage – The service usage of vlans within the pool where we try to find a free vlan. If any vlan is present in that pool, we will reuse it.

connect.get_node_side_mapping(nodes: 'std::Entity[]') 'dict'

Construct a mapping of a node to a side. Each side is a number, unique for each node provided in the input. The side value will stay stable from one compile to the other as long as the set of nodes stays the same (order doesn’t matter).

Parameters:

nodes – The nodes for which we want to get a unique side.

connect.get_optional(entity: <class 'object'>, attribute: <class 'str'>) object | None
connect.get_peer_endpoint(endpoints: 'connect::CarrierEthernetEvcEndPoint[]', endpoint: 'connect::CarrierEthernetEvcEndPoint') 'connect::CarrierEthernetEvcEndPoint'
connect.get_port_id(service: 'lsm::ServiceEntity', attribute_path: 'string', *, uni_ref: 'string', device_name: 'string', port_name: 'string') 'string'

Allocator used to retrieve the network_element of a device in the appropriate inventory using the device_name.

connect.get_provider_ip(providers: 'connect::CarrierEthernetEvcEndPointProvider[]') 'string'
connect.get_provider_ips(providers: 'connect::CarrierEthernetEvcEndPointProvider[]') 'std::ipv4_address[]'
connect.get_service_state_option(binding: 'lsm::ServiceEntityBinding', assignment: 'dict', *, option: 'connect::fsm::StateOption?' = None, name: 'string?' = None) 'string'

Get the state option value for the given service in the state it is in for the ongoing compile.

Parameters:
  • service – The service that is part of the compile.

  • option – The option we want to resolve for the service.

  • name – The name of the relation on the state that leads to the option.

connect.get_the_first_cir(cirs: 'connect::EgressBwpFlow[]') 'connect::EgressBwpFlow?'
connect.get_the_first_vlan(vlans: 'connect::VlanId[]') 'connect::VlanId?'
connect.get_uni_dict(service: 'lsm::ServiceEntity', attribute_path: 'string', *, uniref: 'string') 'dict'

UNI resolver function for AllocatorV3, using decorated functions to resolve UNI reference strings to an object of UserNetworkInterface.

uni_resolver decorator can be used to “register” existence of a resolver in this function. The decorator takes one argument, scheme, which defines for which schemes the resolver should be used. To use custom resolver, its scheme needs to be added to configuration file under main.allowed_uni_resolvers.

connect.get_uni_service_usage(instance_id: 'string') 'list'

Collect the usage of the given uni across all services in this environment. Returns a list of all service endpoints terminating a service on this uni.

connect.gt(a: 'any', b: 'any') 'bool'

Simple python comparison operation

connect.is_nokia_bug(interface: 'connect::services::l2_connect::Interface') 'bool'

Verify if the given interface need to user inverted local and remote tags because of a bug in nokia implementation. Returns true if 1. the interface is part of a multi-homed node 2. the other node of the vpws connection is single-homed 3. the sh node and the other interface of this mh node are on the same device 4. the interface is on yet another device

connect.kbps_bandwidth(cir: 'int') 'int'

Calculates the bps bandwidth into kbps bandwidth.

Parameters:

bandwidth – Bandwidth in bps.

Returns:

Bandwidth in kbps.

connect.lists_intersection(list_a: 'list', list_b: 'list') 'list'
connect.mac_address_cisco(raw: 'string') 'string'

Convert a mac address received in the service input, which is intentionally kept flexible, to the format defined in the cisco yang definitions:

Cisco-IOS-XR-es-ace-cfg.yang: L90: type string { L91: pattern “([0-9a-fA-F]{1,4}(\.[0-9a-fA-F]{1,4}){2})”; L92: }

connect.mac_address_ietf(raw: 'string') 'string'

Convert a mac address received in the service input, which is intentionally kept flexible, to the format defined in ietf yang definitions:

ietf-yang-types.yang: L404: type string { L405: pattern ‘[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}’; L406: }

connect.max_length(original: 'string', max_length: 'int') 'string'

Truncate the string passed in original if it is longer than max_length. The returned string will then be the first max_length characters of the string.

Parameters:
  • original – The string to truncate if too long

  • mex_length – The maximum length the returned string can have

connect.maximum_one_vlan_id_or_raise(vlan_id_list_or_untag: 'connect::VlanIdListOrUntag')
connect.nokia_port_tag(evcEndPointMap: 'connect::VlanIdListOrUntag') 'string?'

This logic is used in the sap_id.j2 template to build the correct sap id based on the vlan tagging that is applied to the port.

connect.parse_vlan_tagging(vlan: 'string') 'dict'

Parse a vlan as defined in a service into a dict specifying its encapsulation, outer tag and inner tag. The format of the returned dict is as follow:

..code-block:: python

{

“encapsulation”: “qinq”, # Or dot1q, untagged “outer_vlan”: 100, # Or None “inner_vlan”: 100, # Or None

}

This is the reversed operation to serialize_vlan_tagging plugin.

Parameters:

vlan – The vlan string to parse

connect.port_encapsulation(evcEndPointMap: 'connect::VlanIdListOrUntag') 'connect::encapsulation_type?'

Get the encapsulation type for the given endpoint map. If the encapsulation is specified on the entity, we use this one, otherwise we try to guess it based on the filtering that is defined.

  • type == ‘ALL’ –> dot1q

  • type == ‘LIST’ –> qinq

  • type == ‘UNTAGGED’ –> null

Parameters:

evcEndPointMap – The entity defining the encapsulation to configure on the endpoint.

connect.qinq_mark_top_only(sap_id: 'string') 'bool?'

Compute the value that should be given for the qinq_mark_top_only qos attribute for nokia services, based on the sap id. Check if the vlan tag is of the form X.*, if so returns true, else returns null. cf. https://code.inmanta.com/solutions/bics/bics_ce/-/issues/183

connect.range(start_stop: 'int', stop: 'int?' = None, step: 'int' = 1) 'int[]'
connect.register_fnt_inventory(api: 'std::Entity')

Register the netbox inventory, if it is enabled in the configuration.

connect.register_inmanta_inventory()

Register the inmanta inventory, if it is enabled in the configuration.

connect.register_netbox_inventory()

Register the netbox inventory, if it is enabled in the configuration.

connect.select_backend_type(candidate_backend: 'string?', carrier_ethernet_evc_endpoints: 'connect::CarrierEthernetEvcEndPoint[]') 'string'

Get a candidate backend and verify it is allowed by the configuration. The validated value is returned. If no value (=null) is passed, the default value from the config is chosen.

Parameters:

candidate_backend – The type of backend we consider using

connect.select_port(ports: 'infra::Port[]', port_id: 'string?' = None, port_name: 'string?' = None) 'infra::Port'
Select a port from a list based on the following filter:
  • port_id, the id of the port, if None, any will match

  • port_name, the name of the port, if None, any will match

If multiple ports match, the first one is returned. If no port can be found, a PluginException is raised.

connect.send_file(web_dav_url: 'string', content: 'string')

Push the given file content to a remote server using web-dav.

Parameters:
  • web_dav_url – The url where the file content should be pushed.

  • content – The content of the file to push.

connect.serialize_vlan_tagging(encapsulation: 'string', outer_vlan: 'int?' = None, inner_vlan: 'int?' = None) 'string'

Serialize the given vlan tagging values into a single string that can represent it in the service attributes.

Parameters:
  • encapsulation – The encapsulation type for this vlan

  • outer_vlan – The outer vlan, as an int, or None

  • inner_vlan – The inner vlan, as an int, or None

connect.slugify(input: 'string') 'string'

Transform the input string into a valid netbox slug. Characters allowed in slug: - letter - number - underscore - hyphen

Parameters:

input – The input to transform.

connect.string_to_alfanum_with_underscore(input: 'string') 'string'
connect.unknown_device_kind_error(device: 'infra::Device')
connect.unsupported_device_kind_error(instance_identifier: 'string', device_kind: 'infra::device_kind_t', supported_kinds: 'infra::device_kind_t[]')

Provide information about endpoint where unsupported vendor was detected.

connect.validate(condition: 'bool', error: 'string')

Raise a PluginException with the given error message if the input condition is False. Alternative to std::assert which raises a PluginException instead of an AssertionError.

connect.validate_consistency(service: typing.Annotated[typing.Any, ModelType(model_type='lsm::ServiceEntity')], object_path: <class 'str'>, attribute_values: dict[str, object]) <class 'bool'>

Run a consistency check over the service attributes of an object present in this service. Make sure that any other object matching that path in any other service instance has matching attribute values.

Parameters:
  • service – The service instance for which we should check the attributes consistency.

  • object_path – The path to the object within the service attributes.

  • attribute_paths – A list of paths for which we should check for the value consistency.

connect.validate_next(from_option: 'connect::fsm::StateOption', to_option: 'connect::fsm::StateOption') 'dict'

Helper plugin to emit the state option for a validating state in between two exporting states. The plugin takes as input the option of the original and the target state, and return a dict matching the attributes of the StateOption entity.

Parameters:
  • from_option – The option of the state prior to the validation

  • to_option – The option of the state after the (successful) validation

connect.validate_uni_deletion_dia(instance_id: 'string')

Validate that the uni with the given instance id can be removed from the inventory. To validate this, we check that the uni is not used by any service (in any of their attributes sets).

If the uni is still in use, raise an explicit exception.

Parameters:
  • instance_id – The instance id that should not be in used.

  • service_entity_name

connect.validate_uni_deletion_l2connect(instance_id: 'string')

Validate that the uni with the given instance id can be removed from the inventory. To validate this, we check that the uni is not used by any service (in any of their attributes sets).

If the uni is still in use, raise an explicit exception.

Parameters:
  • instance_id – The instance id that should not be in used.

  • service_entity_name

connect.validate_uniqueness(service: typing.Annotated[typing.Any, ModelType(model_type='lsm::ServiceEntity')], object_path: <class 'str'>, value: <class 'object'>) <class 'bool'>

Run a uniqueness check over the services of an inventory, make sure than no service has the given value at the given attribute path. This check can not be used to check for uniqueness within a single service, this should be handled with index in the model. This plugin enables to preserve the uniqueness checks that index offer even in a partial compile.

Parameters:
  • service – The service instance that owns the value that should be globally unique.

  • object_path – The path to the attribute of a service that can hold the value that should be globally unique.

  • value – The value that can not be found in any other service at the given path.

connect.validate_vlan_uniqueness(endpoint: 'connect::services::l2_connect::Endpoint')

Make sure that the vlan used by this endpoint is not used by any other endpoint using the same uni. For this we find all the endpoints deployed on the same uni, in any attribute set, and compare the vlan value to ours.

Parameters:

endpoint – The endpoint that should have the a unique vlan.

Resources

class connect.wait_resource.ExternalWait

Handlers

class connect.wait_resource.ExternalWaitHandler