Services

Connect provides five service types, each managed through Inmanta’s Lifecycle Service Manager (LSM). This page describes each service, its API attributes, and how it works.

User Network Interface (UNI)

A UNI represents a customer’s attachment point to the provider network. It maps to one or more physical ports on provider-edge routers. UNIs are prerequisites for all other connectivity services – you must create UNIs before creating connections between them.

Attributes

Attribute

Modifier

Type

Description

name

rw

string

Unique name identifying the UNI

mtu

rw+

positive int

Maximum transmission unit

encapsulation

rw

dot1q / qinq

VLAN encapsulation type

ports

rw+

list

Port references (see below)

lag

rw

object

LAG configuration (optional, see below)

Port attributes:

Attribute

Modifier

Type

Description

port_name

rw

string

Physical port name (e.g., 1/1/c2/1)

device_name

rw

string

Device hosting the port

port_speed

rw+

string

Port speed (optional)

auto_negotiation

rw+

bool

Enable auto-negotiation (optional)

During updates, ports can only be added or removed when a lag is configured on the UNI. When a LAG is present, added/removed ports must remain on the same device(s) as the existing ports.

LAG attributes:

Attribute

Modifier

Type

Description

name

rw+

string

LAG interface name. Auto-generated as lag-{id} if not provided.

id

rw+

int

LAG ID used to resolve LACP parameters. Auto-allocated from configured range if not provided.

manage

rw+

bool

Whether to manage the LAG parameters. If false, the LAG is only referenced in services. Default: true.

options

rw+

dict

Additional vendor-specific options (e.g., es_id for EVPN Ethernet Segment).

Single-Homed vs LAG

  • Single-homed: One port, no lag attribute needed.

  • LAG (Link Aggregation): Set the lag attribute to configure a LAG across the UNI ports. Use manage: true (default) to let the orchestrator allocate the LAG ID and manage LACP. Use manage: false to reference an existing unmanaged LAG.

Example: Single-Homed UNI

{
  "name": "customer-east",
  "mtu": 9212,
  "encapsulation": "qinq",
  "ports": [
    {
      "port_name": "1/1/c2/1",
      "device_name": "router-east"
    }
  ]
}

Example: Multi-Homed UNI with LAG

{
  "name": "customer-west",
  "mtu": 9212,
  "encapsulation": "dot1q",
  "ports": [
    {
      "port_name": "1/1/c2/1",
      "device_name": "router-west-1"
    },
    {
      "port_name": "1/1/c2/1",
      "device_name": "router-west-2"
    }
  ],
  "lag": {
    "manage": true
  }
}

L2 Connect

L2 Connect provides Layer 2 point-to-point and multipoint connectivity between UNIs. It is the most sophisticated service in Connect, using segment decomposition to support connections across heterogeneous network domains.

Attributes

Attribute

Modifier

Type

Description

identifier

rw

string

Unique service identifier

bandwidth

rw+

int

Bandwidth in kbps (0 = unlimited)

service_id

r

positive int

Auto-allocated service ID

connection_type

rw

string

POINT_TO_POINT or MULTIPOINT

endpoints

rw

list (2+)

Endpoint definitions (see below)

parameters

rw+

object

Backend parameters (see below)

details

r

object

Auto-populated segments and nodes (read-only)

Endpoint attributes:

Attribute

Modifier

Type

Description

identifier

rw

string

Endpoint identifier (unique within the service)

uni

rw

ref

Reference to an existing UNI service instance

vlan

rw

string

VLAN tag expression (e.g., 100, 100.*, 100.200)

Parameters attributes:

Attribute

Modifier

Type

Description

mpls_backend

rw+

LDP / EVPN

MPLS backend technology

mpls_p2p_service

rw+

vpls / vpws

Service type for point-to-point connections

mac_address_blocklist

rw+

list of MAC

MAC addresses to block on the service

VLAN Tag Expressions

The vlan field on endpoints supports several formats:

Expression

Encapsulation

Meaning

100

dot1q

Outer VLAN 100

100.*

qinq

Outer VLAN 100, any inner VLAN

100.200

qinq

Outer VLAN 100, inner VLAN 200

untagged

untagged

No VLAN tagging

auto

(any)

Auto-allocate a VLAN from the available pool

Segment Details (Read-Only)

After allocation, the details field is populated with the decomposed service structure:

  • segments: List of network segments, each with a type, identifier, and set of network elements with their interfaces.

  • nodes: List of junction points between segments, each with VLAN allocation and encapsulation.

  • network_elements: Information about each device participating in the service.

Example

{
  "identifier": "east-west-evpn",
  "bandwidth": 1000000,
  "connection_type": "POINT_TO_POINT",
  "endpoints": [
    {
      "identifier": "ep-east",
      "uni": "customer-east",
      "vlan": "1730.*"
    },
    {
      "identifier": "ep-west",
      "uni": "customer-west",
      "vlan": "1731.*"
    }
  ],
  "parameters": {
    "mpls_backend": "EVPN",
    "mpls_p2p_service": "vpws"
  }
}

Carrier Ethernet EVC

The Carrier Ethernet EVC provides a MEF-compliant API for Ethernet Virtual Connections. It supports point-to-point (E-Line) and multipoint (E-LAN) service types with bandwidth profiles and VLAN mapping, following the MEF 10.4 specification.

Attributes

Attribute

Modifier

Type

Description

identifier

rw

string (1-45 chars)

Unique EVC identifier

connectionType

rw

POINT_TO_POINT / MULTIPOINT

Service topology

evcEndPoints

rw

list (2+)

EVC endpoint definitions

ext_networkBackend

rw

object

Backend selection (LDP / EVPN)

EVC Endpoint attributes:

Attribute

Modifier

Type

Description

subscriberUniRef

rw

ref

Reference to subscriber UNI

evcEndPointId

rw

string

Endpoint identifier

cosIdentifier

rw+

string

Class of Service identifier

egressBwpFlow

rw+

object

Egress bandwidth profile (CIR in kbps)

evcEndPointMap

rw

object

VLAN mapping configuration

VLAN mapping (evcEndPointMap) supports:

  • ALL: All VLANs on the UNI

  • LIST: Specific VLAN IDs (with optional inner VLAN for Q-in-Q)

  • UNTAGGED: Untagged frames only

Example

{
  "identifier": "evc-east-west",
  "connectionType": "POINT_TO_POINT",
  "ext_networkBackend": {
    "type": "EVPN"
  },
  "evcEndPoints": [
    {
      "evcEndPointId": "ep-1",
      "subscriberUniRef": {
        "href": "inmanta:456-852-789"
      },
      "evcEndPointMap": {
        "type": "LIST",
        "vlanIdList": [
          {"vlanId": 100}
        ]
      },
      "egressBwpFlow": {
        "cir": 1000000
      }
    },
    {
      "evcEndPointId": "ep-2",
      "subscriberUniRef": {
        "href": "inmanta:123-852-456"
      },
      "evcEndPointMap": {
        "type": "LIST",
        "vlanIdList": [
          {"vlanId": 200}
        ]
      },
      "egressBwpFlow": {
        "cir": 1000000
      }
    }
  ]
}

L3 VPN

L3 VPN provides Layer 3 Virtual Private Network connectivity with MPLS transport. It creates a VPN routing instance (VRF) on each endpoint device and establishes routing sessions with customer-edge equipment.

Attributes

Attribute

Modifier

Type

Description

identifier

rw

string

Unique service identifier

rd_number

rw+

int (opt)

Route Distinguisher (auto-allocated if omitted)

route_target

rw+

int (opt)

Route Target (auto-allocated if omitted)

bandwidth

rw+

int

Bandwidth per endpoint in kbps (0 = unlimited)

allowed_ipv4_networks

rw+

list

IPv4 firewall allow-list

allowed_ipv6_networks

rw+

list

IPv6 firewall allow-list

endpoints

rw+

list (1+)

Endpoint definitions (see below)

parameters

rw+

object

Service parameters

Endpoint attributes:

Attribute

Modifier

Type

Description

identifier

rw

string

Endpoint identifier

uni

rw

ref

Reference to existing UNI service

vlan_id

rw

int (1-4094)

VLAN for PE-CE communication

routing_protocol

rw

static / bgp

Routing protocol with customer

bgp_remote_as

rw

int (opt)

Customer BGP AS number (required for BGP)

bfd_interval

rw+

int

BFD interval in ms (0 = disabled)

ipv4

rw+

object

IPv4 configuration

ipv6

rw+

object (opt)

IPv6 configuration (dual-stack)

IPv4/IPv6 configuration:

Attribute

Modifier

Type

Description

p2p_network

rw+

IP network

PE-CE point-to-point network (auto-allocated if omitted)

prefixes

rw+

list

Customer prefixes to route into the VPN

Parameters:

Attribute

Modifier

Type

Description

transport_technology

rw+

LDP / SR-MPLS

MPLS transport technology

Example

{
  "identifier": "vpn-customer-a",
  "bandwidth": 100000,
  "allowed_ipv4_networks": ["10.0.0.0/8", "172.16.0.0/12"],
  "endpoints": [
    {
      "identifier": "site-east",
      "uni": "customer-east",
      "vlan_id": 500,
      "routing_protocol": "bgp",
      "bgp_remote_as": 65001,
      "bfd_interval": 300,
      "ipv4": {
        "p2p_network": "192.168.1.0/30",
        "prefixes": ["10.1.0.0/16"]
      },
      "ipv6": {
        "p2p_network": "2001:db8:1::/126",
        "prefixes": ["2001:db8:100::/48"]
      }
    },
    {
      "identifier": "site-west",
      "uni": "customer-west",
      "vlan_id": 501,
      "routing_protocol": "bgp",
      "bgp_remote_as": 65001,
      "ipv4": {
        "prefixes": ["10.2.0.0/16"]
      }
    }
  ],
  "parameters": {
    "transport_technology": "LDP"
  }
}

Direct Internet Access (DIA)

DIA provides internet connectivity for a customer by creating a dedicated VRF and leaking routes between the customer VRF and the default routing table. Customer prefixes are advertised and internet routes are made available to the customer.

Attributes

Attribute

Modifier

Type

Description

identifier

rw

string

Unique service identifier

routing_protocol

rw

static / bgp

Routing protocol with customer

prefixes

rw+

list

Customer IP prefixes

bgp_remote_as

rw

int (opt)

Customer BGP AS (required for BGP)

service_id

r

positive int

Auto-allocated service ID

endpoints

rw

list (1+)

Endpoint definitions (see below)

Endpoint attributes:

Attribute

Modifier

Type

Description

identifier

rw

string

Endpoint identifier

uni

rw

ref

Reference to existing UNI service

vlan_id

rw

int (1-4094)

VLAN for PE-CE communication

p2p_network

r

IP network

Auto-allocated PE-CE point-to-point network

bfd_interval

rw+

int

BFD interval in ms (0 = disabled)

Example

{
  "identifier": "dia-customer-a",
  "routing_protocol": "bgp",
  "bgp_remote_as": 65001,
  "prefixes": ["203.0.113.0/24"],
  "endpoints": [
    {
      "identifier": "ep-1",
      "uni": "customer-east",
      "vlan_id": 600
    }
  ]
}

Service Dependencies

Services have dependencies that must be respected during creation and deletion:

  • UNIs must be created before any connectivity service that references them.

  • A UNI cannot be deleted while connectivity services still reference it (enforced by deletion validation when enabled).

  • Multiple connectivity services can share the same UNI, each using a different VLAN.

Attribute Modifiers

The modifier column in the attribute tables refers to LSM attribute modifiers that control when an attribute can be set. See the LSM documentation for details.