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