6. 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.1. TFS APIe
This NBI connector exposes the basic gRPC methods of TeraFlowSDN that enable to manage 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
 
 
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
 
 
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
 
 
Endpoint /tfs-api/context/<path:context_uuid>/topology/<path:topology_uuid>
- Method: 
GET- Used to retrieve 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
 
 - 
Method:
PUT- Used to update a service
 
 - 
Method:
DELETE- Used to delete a service
 
 
Endpoint /tfs-api/context/<path:context_uuid>/service/<path:service_uuid>
- Method: 
GET- Used to retrieve 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
 
 
Endpoint /tfs-api/context/<path:context_uuid>/slice/<path:slice_uuid>
- Method: 
GET- Used to retrieve 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
 
 
Endpoint /tfs-api/device/<path:device_uuid>
- Method: 
GET- Used to retrieve 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
 
 
Endpoint /tfs-api/link/<path:link_uuid>
- Method: 
GET- Used to retrieve 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