Service Model
  • 01 Nov 2024
  • 5 Minutes to read
  • Contributors
  • PDF

Service Model

  • PDF

Article summary

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.

service-model2.png

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.

ServiceModel-diagram.png

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

parameterdescriptioncomment
service-idacdt:id field used as the main identifier for the serviceTypically set to the same value as the service-name, this field is automatically added as metadata "service_id" in PCA Analytics
service-nameacdt:id field, name of this serviceTypically set to the same value as the service-id, this field is automatically added as metadata "service_name" in PCA Analytics
group-idacdt:id field used to group service objects for bulk operation, notifications, and streaming services
descriptionFree-form description text for this service
typetype of serviceonly type "service" implemented
service-definitionunusedfor future use
sessionsList of session IDs that belong to this service
metadataList of metadata that common to all sessions in this service
alertsList 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

parameterdescriptioncomment
session-idacdt:id field used as the main identifier for the sessionTypically set to the same value as the session-name, this field is automatically added as metadata "session_id" in PCA Analytics
session-nameacdt:id field, name of this serviceTypically set to the same value as the session-id, this field is automatically added as metadata "session_name" in PCA Analytics
group-idacdt:id field used to group session objects for bulk operation, notifications, and streaming services
descriptionFree-form description text for this session
session-typetype of sessionsupported options are "twamp-light", "y1564", "rfc2544", and "throughput"
service-endpointslist of service-endpoint IDs for this session
session-protocoldefines the session protocol and role of the endpoint (sender /reflector)
metadataList of metadata associated with this session
alertsList of alert policies associated with this session
start / stopAction 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

parameterdescriptioncomment
endpoint-idacdt:id field used as the main identifier for the endpointTypically set to the same value as the endpoint-name
endpoint-nameacdt:id field, name of this serviceTypically 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-idacdt:id field used to group endpoint objects for bulk operation and state change notifications
descriptionFree-form description text for this endpoint
typeType of endpointsupported values are "ne-endpoint" for TWAMP tests, "nid-endpoint" for SAT tests and "unmanaged-endpoint" for external reflectors /servers
descriptionFree-form description text for this endpoint
geo-locationlatitude and longitude of this endpointWGS86 with up to six decimal points
configConfiguration for this endpoint, contains an ne-config or nid-config definition
ne-configConfiguration for endpoint of type ne
nid-configConfiguration 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



Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.