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
- 6.2. ETSI Bandwidth Management (BWM)
- 6.3. IETF L2VPN Service Delivery (L2SM) [RFC8466]
- 6.4. IETF L3VPN Service Delivery (L3SM) [RFC8299]
- 6.5. IETF Network Topology [RFC8345]
- 6.6. IETF Network Slice Service [draft-ietf-teas-ietf-network-slice-nbi-yang]
- 6.7. TFS MCP Server
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:
- IETF RFC8345: A YANG Data Model for Network Topologies
- IETF RFC8795: YANG Data Model for Traffic Engineering (TE) Topologies
- IETF RFC8776: Common YANG Data Types for Traffic Engineering
- IETF RFC6991: Common YANG Data Types
- IETF draft-ietf-ccamp-eth-client-te-topo-yang-05: A YANG Data Model for Ethernet TE Topology
- IETF draft-ietf-ccamp-client-signal-yang-10: A YANG Data Model for Transport Network Client Signals
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/healthand/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.