- Print
- PDF
Service Model Overview
When using the RESTCONF YANG interface to provision Provider Connectivity Assurance, the configuration is built according to the YANG service model described in this article. This model consists of three distinct tiers and a set of associated configuration objects and relations.
In this model, the service-endpoint represents the entity or device performing a test function, as a sender of a throughput (SAT) test or a reflector of a TWAMP session. The service-endpoints hold information such as the IP addresses, ports, and human-readable names of the endpoints.
A test session represents the test itself and is always referencing two service-endpoints, but one endpoint can be part of more than one session.
At the top level is the service object, which connects one or more sessions into an overall service group. With this grouping, actions and settings can be performed on the service-level that then propagate to many sessions.
Network diagram of a basic service with two sessions using three service endpoints.
Service Object
The YANG tree for the service object is shown below:
module: Accedian-service
+--rw services
+--rw service* [service-id]
| +--rw service-id acdt:id
| +--rw service-name? acdt:id
| +--rw group-id? acdt:id
| +--rw description? string
| +--rw type? identityref
| +--rw service-definition
| +--rw sessions* [session-id]
| | +--rw session-id -> /acdses:sessions/session/session-id
| +--rw metadata
| +--rw key-value* [key-name]
| +--rw key-name -> /acdmeta:metadata-config/metadata-key/key-name
| +--rw value? string
+--rw alerts* [alert-policy-id]
+--rw alert-policy-id -> /acda:alert-policies/alert-policy/policy-id
Service Object Parameters
parameter | description | comment |
---|---|---|
service-id | acdt:id field used as the main identifier for the service | Typically set to the same value as the service-name, this field is automatically added as metadata "service_id" in PCA Analytics |
service-name | acdt:id field, name of this service | Typically set to the same value as the service-id, this field is automatically added as metadata "service_name" in PCA Analytics |
group-id | acdt:id field used to group service objects for bulk operation, notifications, and streaming services | |
description | Free-form description text for this service | |
type | type of service | only type "service" implemented |
service-definition | unused | for future use |
sessions | List of session IDs that belong to this service | |
metadata | List of metadata that common to all sessions in this service | |
alerts | List of alert policies associated with this service |
Note A text field of type acdt:id allows the following characters and symbols: '[a-zA-Z0-9][a-zA-Z0-9._-]*'
The fields of the service object are non-editable with PATCH operations, so before creating a service object, the session and endpoint objects must be created.
Session Object
The session object defines the path to be tested between two service-endpoint objects.
The following two types of sessions are supported in the current version of the model:
- TWAMP stateless / stateful see TWAMP for details on TWAMP sessions
- SAT rfc2544 / y.1564 see [SAT] (/v1/docs/sat) for details on SAT test sessions
YANG tree for the session object is shown below:
module: Accedian-session
+--rw sessions
+--rw session* [session-id]
+--rw session-id acdt:id
+--rw session-name? acdt:id
+--rw group-id? acdt:id
+--rw description? string
+--rw session-type identityref
+--rw service-endpoints* [endpoint-id]
| +--rw endpoint-id -> /acdsep:service-endpoints/service-endpoint/endpoint-id
| +--rw session-protocol
+--rw metadata
| +--rw key-value* [key-name]
| +--rw key-name -> /acdmeta:metadata-config/metadata-key/key-name
| +--rw value? string
+--rw alerts* [alert-policy-id]
| +--rw alert-policy-id -> /acda:alert-policies/alert-policy/policy-id
+--ro status
+---x start
+---x stop
Session Object Parameters
parameter | description | comment |
---|---|---|
session-id | acdt:id field used as the main identifier for the session | Typically set to the same value as the session-name, this field is automatically added as metadata "session_id" in PCA Analytics |
session-name | acdt:id field, name of this service | Typically set to the same value as the session-id, this field is automatically added as metadata "session_name" in PCA Analytics |
group-id | acdt:id field used to group session objects for bulk operation, notifications, and streaming services | |
description | Free-form description text for this session | |
session-type | type of session | supported options are "twamp-light", "y1564", "rfc2544", and "throughput" |
service-endpoints | list of service-endpoint IDs for this session | |
session-protocol | defines the session protocol and role of the endpoint (sender /reflector) | |
metadata | List of metadata associated with this session | |
alerts | List of alert policies associated with this session | |
start / stop | Action commands to start or stop the session |
Note A text field of type acdt:id allows the following characters and symbols: '[a-zA-Z0-9][a-zA-Z0-9._-]*'
The individual fields of the session object are non-editable with PATCH operations after the object has been created, so before instantiating a session object, the corresponding endpoint objects must be created.
Service-endpoint Object
The service-endpoint defines the sender or receiver/reflector of a test session. Provider Connectivity Assurance sensors supported via the RESTCONF YANG interface currently are Sensor SFP and Sensor Agent (actuate and throughput).
YANG tree for the endpoint objects most common leafs shown below:
module: Accedian-service-endpoint
+--rw service-endpoints
+--rw service-endpoint* [endpoint-id]
+--rw endpoint-id acdt:id
+--rw endpoint-name? acdt:id
+--rw group-id? acdt:id
+--rw description? string
+--rw geo-location
| +--rw latitude? decimal64
| +--rw longitude? decimal64
+--rw type? identityref
+--rw config
+--rw ne-config
+--rw nid-config
Endpoint Object Parameters
parameter | description | comment |
---|---|---|
endpoint-id | acdt:id field used as the main identifier for the endpoint | Typically set to the same value as the endpoint-name |
endpoint-name | acdt:id field, name of this service | Typically set to the same value as the endpoint-id, this field is automatically added as metadata "endpoint_name" in PCA Analytics for sessions originating from / terminating at this endpoint |
group-id | acdt:id field used to group endpoint objects for bulk operation and state change notifications | |
description | Free-form description text for this endpoint | |
type | Type of endpoint | supported values are "ne-endpoint" for TWAMP tests, "nid-endpoint" for SAT tests and "unmanaged-endpoint" for external reflectors /servers |
description | Free-form description text for this endpoint | |
geo-location | latitude and longitude of this endpoint | WGS86 with up to six decimal points |
config | Configuration for this endpoint, contains an ne-config or nid-config definition | |
ne-config | Configuration for endpoint of type ne | |
nid-config | Configuration for endpoint of type nid |
See Endpoint for full details on the Endpoint object parameters
Endpoint RESTCONF Example
An example RESTCONF message to create a new endpoint object is shown below:
RESTCONF POST :: PCA-INSTANCE/restconf/data/Accedian-service-endpoint:service-endpoints
{
"Accedian-service-endpoint:service-endpoint":[{
"endpoint-id":"my-endpoint-agent-1",
"endpoint-name":"my-endpoint-agent-1",
"description":"This is an agent",
"type":"Accedian-service-endpoint-type:ne-endpoint",
"config":{
"Accedian-service-endpoint-ne:ne-config":{
"ne-id":"nso-demo-agent-1",
"ip":"192.168.0.4"
}
}
}]
}
© 2024 Cisco and/or its affiliates. All rights reserved.
For more information about trademarks, please visit: Cisco trademarks
For more information about legal terms, please visit: Cisco legal terms
For legal information about Accedian Skylight products, please visit: Accedian legal terms and tradmarks