Skip to content

Supported NBIs

This section summarizes the NBI connectors supported by the TeraFlowSDN controller to interoperate with OSS/BSS/NFVO on top of it.

6.1. TFS API

This NBI connector exposes the basic gRPC methods of TeraFlowSDN that enable management of contexts, topologies, devices, links, services, slices, connections, and policies.

Exposed endpoints:

Endpoint /tfs-api/context_ids

  • Method: GET
    • Used to list the context identifiers

Endpoint /tfs-api/contexts

  • Method: GET

    • Used to list the details of all contexts
  • Method: POST

    • Used to create a context

Endpoint /tfs-api/dummy_contexts

  • Method: GET
    • Used to dump contexts (including related topologies, devices, links, services, slices, and connections) in a snapshot format that can be imported directly in TeraFlowSDN WebUI.
    • IMPORTANT: the resulting document is processed by WebUI in dummy mode, i.e., just to populate Context database, but not interacting with Device, Service, and Slice components.

Endpoint /tfs-api/context/<path:context_uuid>

  • Method: GET

    • Used to retrieve a specific context
  • Method: PUT

    • Used to update a specific context
  • Method: DELETE

    • Used to delete a specific context

Endpoint /tfs-api/context/<path:context_uuid>/topology_ids

  • Method: GET
    • Used to list the topology identifiers in a context

Endpoint /tfs-api/context/<path:context_uuid>/topologies

  • Method: GET

    • Used to list all the topology details in a context
  • Method: POST

    • Used to create a topology in a context

Endpoint /tfs-api/context/<path:context_uuid>/topology/<path:topology_uuid>

  • Method: GET

    • Used to retrieve a specific topology in a context
  • Method: PUT

    • Used to update a specific topology in a context
  • Method: DELETE

    • Used to delete a specific topology in a context

Endpoint /tfs-api/context/<path:context_uuid>/service_ids

  • Method: GET
    • Used to list the service identifiers in a context

Endpoint /tfs-api/context/<path:context_uuid>/services

  • Method: GET

    • Used to list all the service details in a context
  • Method: POST

    • Used to create a service in a context

Endpoint /tfs-api/context/<path:context_uuid>/service/<path:service_uuid>

  • Method: GET

    • Used to retrieve a specific service in a context
  • Method: PUT

    • Used to update a specific service in a context
  • Method: DELETE

    • Used to delete a specific service in a context

Endpoint /tfs-api/context/<path:context_uuid>/slice_ids

  • Method: GET
    • Used to list the slice identifiers in a context

Endpoint /tfs-api/context/<path:context_uuid>/slices

  • Method: GET

    • Used to list all the slice details in a context
  • Method: POST

    • Used to create a slice in a context

Endpoint /tfs-api/context/<path:context_uuid>/slice/<path:slice_uuid>

  • Method: GET

    • Used to retrieve a specific slice in a context
  • Method: PUT

    • Used to update a specific slice in a context
  • Method: DELETE

    • Used to delete a specific slice in a context

Endpoint /tfs-api/device_ids

  • Method: GET
    • Used to list the device identifiers

Endpoint /tfs-api/devices

  • Method: GET

    • Used to list the device details
  • Method: POST

    • Used to create a device

Endpoint /tfs-api/device/<path:device_uuid>

  • Method: GET

    • Used to retrieve a specific device
  • Method: PUT

    • Used to update a specific device
  • Method: DELETE

    • Used to delete a specific device

Endpoint /tfs-api/link_ids

  • Method: GET
    • Used to list the link identifiers

Endpoint /tfs-api/links

  • Method: GET

    • Used to list the link details
  • Method: POST

    • Used to create a link

Endpoint /tfs-api/link/<path:link_uuid>

  • Method: GET

    • Used to retrieve a specific link
  • Method: PUT

    • Used to update a specific link
  • Method: DELETE

    • Used to delete a specific link

Endpoint /tfs-api/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids

  • Method: GET
    • Used to list the connection identifiers related to a service

Endpoint /tfs-api/context/<path:context_uuid>/service/<path:service_uuid>/connections

  • Method: GET
    • Used to list all the connection details related to a service

Endpoint /tfs-api/connection/<path:connection_uuid>

  • Method: GET
    • Used to retrieve a specific connection

Endpoint /tfs-api/policyrule_ids

  • Method: GET
    • Used to list all the policy rule identifiers

Endpoint /tfs-api/policyrules

  • Method: GET
    • Used to list all the policy rule details

Endpoint /tfs-api/policyrule/<path:policyrule_uuid>

  • Method: GET
    • Used to retrieve a specific policy rule

6.2. ETSI Bandwidth Management (BWM)

ETSI Traffic Bandwidth Management (BWM) API (GS MEC 015)

Documentation in progress

Supported features:

  • L3 connectivity service management

Tested OSS/BSS/NFVO:

  • Proprietary Moonlight extension
  • Standalone script

Reference:

  • ETSI Traffic Bandwidth Management (BWM) API (GS MEC 015)

6.3. IETF L2VPN Service Delivery (L2SM) [RFC8466]

IETF RFC8466: A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery

Documentation in progress

Supported features:

  • L2 VPN management

Tested OSS/BSS/NFVO:

  • ETSI OpenSource MANO v12.1+

Reference:

6.4. IETF L3VPN Service Delivery (L3SM) [RFC8299]

IETF RFC8299: YANG Data Model for L3VPN Service Delivery

Documentation in progress

Supported features:

  • L3 VPN management

Tested OSS/BSS/NFVO:

  • Proprietary OSM extensions
  • Standalone script

Reference:

6.5. IETF Network Topology [RFC8345]

IETF RFC8345: A YANG Data Model for Network Topologies

Documentation in progress

This extension also features partial support for:

  • IETF RFC 8795: YANG Data Model for Traffic Engineering (TE) Topologies
  • IETF RFC draft-ietf-ccamp-eth-client-te-topo-yang-05: A YANG Data Model for Ethernet TE Topology
  • IETF RFC draft-ietf-ccamp-client-signal-yang-10: A YANG Data Model for Transport Network Client Signals

Supported features:

  • Static topology exposition

Tested OSS/BSS/NFVO:

  • Proprietary OSM extensions
  • Standalone script

Reference:

6.6. IETF Network Slice Service [draft-ietf-teas-ietf-network-slice-nbi-yang]

IETF draft-ietf-teas-ietf-network-slice-nbi-yang: A YANG Data Model for the RFC 9543 Network Slice Service

Important: implemented version is based on version 2 of the draft:

  • draft-ietf-teas-ietf-network-slice-nbi-yang-02: IETF Network Slice Service YANG Model

Documentation in progress

Supported features:

  • L2/L3 slice management

Tested OSS/BSS/NFVO:

  • Standalone script

Reference:

6.7. TFS MCP Server

The TFS MCP Server exposes selected TeraFlowSDN controller operations through the Model Context Protocol (MCP). It is intended for MCP clients, including agentic applications, that need to discover and invoke controller operations through a structured tool interface. In normal mode, the server forwards tool calls to the TFS API and related REST endpoints. In mocked mode, it can serve a static inventory for offline client testing.

Transport:

  • SSE endpoint: /mcp/sse
  • MCP message endpoint: /mcp/messages/
  • Health endpoints: /mcp/health and /mcp/healthz

Exposed MCP methods:

MCP tool names use the tfs_ prefix. The method names below are the names advertised to MCP clients.

Context methods:

  • tfs_list_context_ids: list context identifiers.
  • tfs_list_contexts: list context details.
  • tfs_set_contexts: create multiple contexts.
  • tfs_get_dummy_contexts: dump contexts, topologies, devices, links, services, slices, and connections in a snapshot format for offline or dummy-mode testing.
  • tfs_get_context: retrieve a specific context.
  • tfs_set_context: update a specific context.
  • tfs_delete_context: delete a specific context.

Topology methods:

  • tfs_list_topology_ids: list topology identifiers in a context.
  • tfs_list_topologies: list topology details in a context.
  • tfs_set_topologies: create multiple topologies in a context.
  • tfs_get_topology: retrieve a specific topology in a context.
  • tfs_set_topology: update a specific topology in a context.
  • tfs_delete_topology: delete a specific topology in a context.
  • tfs_get_topology_details: retrieve a topology and its related details, including devices and links.

Service methods:

  • tfs_list_service_ids: list service identifiers in a context.
  • tfs_list_services: list services in a context.
  • tfs_create_services: create one or more services in a context.
  • tfs_get_service: retrieve a specific service in a context.
  • tfs_update_service: update a specific service in a context.
  • tfs_delete_service: delete a specific service in a context.
  • tfs_get_optical_service_allocation: retrieve the effective optical allocation selected by the controller for a service.
  • tfs_verify_optical_service_allocation: verify that the effective optical allocation of a service matches an expected path or spectrum assignment.

Slice methods:

  • tfs_list_slice_ids: list slice identifiers in a context.
  • tfs_list_slices: list slices in a context.
  • tfs_create_slices: create one or more slices in a context.
  • tfs_get_slice: retrieve a specific slice in a context.
  • tfs_update_slice: update a specific slice in a context.
  • tfs_delete_slice: delete a specific slice in a context.

Device methods:

  • tfs_list_device_ids: list device identifiers.
  • tfs_list_devices: list device details.
  • tfs_add_devices: add one or more devices.
  • tfs_get_device: retrieve a specific device.
  • tfs_configure_device: update a specific device and its configuration.
  • tfs_delete_device: delete a specific device.

Link methods:

  • tfs_list_link_ids: list packet-link identifiers.
  • tfs_list_links: list packet-link details.
  • tfs_set_links: create one or more packet links.
  • tfs_get_link: retrieve a specific packet link.
  • tfs_set_link: update a specific packet link.
  • tfs_delete_link: delete a specific packet link.
  • tfs_list_optical_link_ids: list optical-link identifiers.
  • tfs_list_optical_links: list optical-link details.
  • tfs_get_optical_link: retrieve a specific optical link.

Optical planning and spectrum reservation methods:

  • tfs_compute_optical_connectivity_candidates: ask the TFS optical controller for read-only path and spectrum candidates for a requested optical connectivity service.
  • tfs_list_optical_spectrum_reservations: list controller-authoritative optical spectrum reservations in a context.
  • tfs_get_optical_spectrum_reservation: retrieve a specific optical spectrum reservation in a context.
  • tfs_create_optical_spectrum_reservation: create a tentative optical spectrum reservation; the controller rejects overlapping active reservations or occupied slots when it reports a conflict.
  • tfs_update_optical_spectrum_reservation: update an existing optical spectrum reservation.
  • tfs_consume_optical_spectrum_reservation: mark a reservation as consumed and associate it with service or connection evidence after provisioning.
  • tfs_release_optical_spectrum_reservation: release or roll back an optical spectrum reservation without deleting its audit record.
  • tfs_delete_optical_spectrum_reservation: delete an optical spectrum reservation record.

Connection methods:

  • tfs_list_connection_ids: list connection identifiers related to a service.
  • tfs_list_connections: list connection details related to a service.
  • tfs_list_all_connections: list all connection details.
  • tfs_get_connection: retrieve a specific connection.

Policy rule methods:

  • tfs_list_policyrule_ids: list policy-rule identifiers.
  • tfs_list_policyrules: list policy-rule details.
  • tfs_get_policyrule: retrieve a specific policy rule.

Specialized optical and OpenConfig methods:

  • tfs_optical_slice_create: create an optical slice through the dedicated optical slice REST endpoint.
  • tfs_optical_slice_delete: delete an optical slice through the dedicated optical slice REST endpoint.
  • tfs_media_channel_allocate: allocate a media channel through the dedicated media-channel REST endpoint.
  • tfs_media_channel_release: release a media channel through the dedicated media-channel REST endpoint.
  • tfs_dscm_oc_get: retrieve device-specific OpenConfig data through the DSCM OpenConfig adapter.
  • tfs_dscm_oc_post: send device-specific OpenConfig configuration through the DSCM OpenConfig adapter.
  • tfs_dscm_oc_delete: delete device-specific OpenConfig configuration through the DSCM OpenConfig adapter.

Operational methods:

  • tfs_health_check: verify reachability of the backing TFS API health endpoint.