Dynamic Data Services enables a zero-touch, single-ended provisioning model for business services. Two deployment models are available:
Dynamic Data Services support includes:
The full list of supported configuration commands can be displayed with the tools dump service dynamic-services command-list CLI command. Dynamic Data Service SAPs must be located on dot1q- or qinq-encapsulated Ethernet, anchoring or satellite ports and can be part of a LAG.
A Python script interface adds a flexible abstraction layer that reduces the OSS integration cost; only the business user specific service parameters, such as service type, IP address, QoS, and filter parameters, are required from RADIUS or local authentication. These parameters are then used in the Python script to generate a CLI template to set up the target Dynamic Data Service.
Dynamic Data Services configuration can be updated via a RADIUS CoA message.
Both XML accounting and RADIUS accounting for up to two different RADIUS destinations can be activated on a dynamic data service SAP.
Refer to the “RADIUS-Triggered Dynamic Data Service Provisioning” section in the Advanced Configuration Guide for a detailed description.
In the data-triggered dynamic data services model, as shown in Figure 194, any frame arriving on a dynamic data services capture SAP can result in RADIUS or local authentication. The dynamic data service is then created from a Python script that generates CLI snippets using parameters obtained from authentication.

A dynamic services data trigger is an object that is created when a frame received on a dynamic services capture SAP is sent to the control plane for authentication. A dynamic services data trigger is uniquely identified with its SAP ID. If the dynamic services data trigger was received on capture SAP x / y / z:*.* with outer-tag = a and inner-tag = b, then the dynamic service data trigger SAP ID is “x / y / z:a.b”. For each dynamic services data trigger, the following information is stored.
Data Trigger Information | Description |
Acct-Session-ID | The RADIUS accounting session ID for this dynamic services data trigger. This accounting session ID is used as accounting multi-session ID in RADIUS accounting for associated dynamic services. It can also be used as a key in CoA or Disconnect Messages to set up or terminate associated dynamic services. |
MAC | The MAC address learned to set up this dynamic service data trigger. The MAC address is included in the Access-Request message for RADIUS authentication. |
IP | The IPv4 or IPv6 address learned to set up this dynamic service data trigger. If the data trigger packet was not an IP packet, then this field is empty. When available, the IP address is included in the RADIUS authentication and accounting messages. |
State | The current state of the dynamic service data trigger: Pending: (initial state) data trigger received and authentication started Accepted: (transient state) authentication succeeded; dynsvc script started but not yet completed sapCreated: (final state) corresponding dynamic services SAP created |
The dynamic services data trigger information can be displayed as follows:
For a data-triggered dynamic data service to be successfully set up, a dynamic services SAP equal to the data trigger SAP ID must be created.
In the same way as the control channel model, multiple dynamic data services can be associated with a single dynamic services data trigger: up to 32 dynamic services during data trigger authentication or up to 4000 in total through CoA. When the dynamic services SAP that corresponds to a data trigger is deleted (teardown action), then all dynamic services associated with that dynamic services data trigger are deleted (teardown action).
In the same way as an Enhanced Subscriber Management (ESM) capture SAP is configured, a dynamic services data trigger capture SAP is configured in a VPLS service and captures frames for authentication. A dynamic service data trigger capture SAP does not forward traffic within the VPLS service, and no MAC learning occurs.
A VPLS capture SAP becomes a dynamic services data trigger capture SAP when a dynamic services policy is configured and the dynamic-services context is enabled (no shutdown). The dynamic services policy specifies the authentication mechanism to be used as detailed in the authentication sections below.
For example:
The trigger-packet type needs to be configured. A dynamic services data trigger capture-sap captures any valid Ethernet frames, including non-IP frames.
Valid dynamic services data trigger capture SAPs are:
Enhanced Subscriber Management (ESM) and dynamic services data trigger cannot be enabled simultaneously on a single capture SAP: a no shutdown command of the dynamic-services CLI context is mutually exclusive when configuring an ESM trigger-packet type.
Use the following CLI commands to display capture SAP statistics:
Counter | Description |
CPM Ingress | Number of dynamic service data triggers received on the capture SAP that are forwarded to CPM |
Forwarding Engine Stats Dropped | Number of dynamic service data triggers is received on the capture SAP that are dropped on IOM |
Counter | Description |
Data packets received by SAP | Number of dynamic service data triggers received on the capture-sap that reached the CPM |
No policy configured at capture SAP level | No dynamic services policy configured at the capture-sap; required to determine the authentication destination. |
No authentication configured in policy | The authentication section in the specified dynamic services policy is missing or incomplete. |
Data-trigger already exists | A new data trigger frame is received for an existing data trigger that is authenticated, but the corresponding dynamic SAP is not yet created. The new data trigger packet is dropped. |
Lockout is active | The data trigger for this managed SAP is currently in a lockout state due to previous authentication failures. |
Reached data-trigger system limit | The maximum number of dynamic service data triggers supported on the system is reached. Additional data triggers are dropped. |
No memory available | There is not enough system memory available to process the data trigger. |
Unsuccessful authentication | The authentication for a data trigger on this capture SAP failed or timed out. |
No data-trigger SAP-id in authentication | The dynamic services data trigger SAP ID is not provided in authentication. This is a mandatory parameter. |
Corresponding dynamic SAP is not created | The data trigger successfully authenticated but the corresponding dynamic SAP was not created. This is typically caused by a dynamic services script error. |
When a valid Ethernet frame is received on a dynamic services data trigger capture SAP, it is sent to the control plane for authentication. The dynamic services policy configured at the capture SAP specifies the RADIUS authentication parameters, as shown in the following example:
Local authentication and RADIUS authentication are mutually exclusive and cannot be configured simultaneously in a config>service>dynsvc>plcy>authentication context.
The server-policy CLI command references the config>aaa>radius-server-policy policy-name to be used for authentication.
The password CLI command specifies the password that is used in all RADIUS Access-Request messages.
RADIUS Access-Request Message Attributes specifies the attributes that are included in the RADIUS Access-Request message for dynamic services data triggers.
RADIUS Attribute | Description |
[1] User-Name | The username format for dynamic services data trigger authentication is fixed to nas-port-id (SAP). |
[2] Password | The password as configured in the authentication section of the dynamic-services-policy. |
[4] NAS-IP-Address | The outband management interface or system interface IPv4 address. Only included if the RADIUS server is reachable via an IPv4 address. |
[95] NAS-IPv6-Address | The outband management interface or system interface IPv6 address. Only included if the RADIUS server is reachable via an IPv6 address. |
[44] Acct-Session-Id | A unique accounting session ID (number format) per dynamic service data trigger. Included as [50] Acct-Multi-Session-Id in radius accounting for all dynamic services that are associated with this data trigger. |
[87] NAS-Port-Id | The dynamic service data trigger sap-id |
[32] NAS-Identifier | The system name of the router |
[26-6527-27] Alc-Client-Hardware-Addr | The MAC address of the data trigger frame that resulted in the authentication. Fixed format (xx:xx:xx:xx:xx:xx) |
[8] Framed-IP-Address | The IPv4 source address of the IPv4 data trigger frame that resulted in the authentication. Not included if the data trigger frame is not an IPv4 packet. |
[26-6527-99] Alc-Ipv6-Address | The IPv6 source address of the IPv6 data trigger frame that resulted in the authentication. Not included if the data trigger frame is not an IPv6 packet. |
The attributes that must be returned in the Access-Accept message are the same as for RADIUS-triggered Dynamic Data Services associated with an IPoE or PPPoE session as a control channel.
Local authentication is available for data-triggered dynamic services deployments where RADIUS is used for accounting and dynamic changes (CoA) but cannot provide the actual service provisioning parameters.
When a valid Ethernet frame is received on a dynamic services data trigger capture SAP, it is sent to the control plane for authentication. The dynamic services policy configured at the capture SAP specifies the local authentication parameters, as shown in the following example:
Local authentication and RADIUS authentication are mutually exclusive and cannot be configured simultaneously in a config>service>dynsvc>plcy>authentication context.
The local-auth-db CLI command references the local authentication database to be used for authentication, as shown in the following example:
A username is used as a key for a lookup in the local authentication database. The username format for dynamic service data triggers is fixed to the SAP ID of the data trigger. For each username entry (data trigger sap-id), multiple dynamic service SAPs can be specified (indexes). The index enables multiple dynamic service SAPs to be associated with a single dynamic service data trigger.
The following data can be specified for each index (dynamic service SAP) in a user-name entry:
A local authentication database can only be used to authenticate a dynamic service data trigger and provide parameters to set up associated dynamic services. The script action cannot be specified and is always set to “setup”.
The setup timeout for Access=Accept (CLI command: configure service dynamic-services timers setup-timeout access-accept timeout) also applies for local authenticated dynamic services.
Once authenticated, the mechanism to set up, modify, and tear down a data triggered dynamic service is the same as for RADIUS-triggered Dynamic Data Services associated with an IPoE or PPPoE session as a control channel.
The auto-provisioning of a data-triggered dynamic service is initiated by the RADIUS messages or local authentication as listed in Table 58.
Notes:
Action | Dynamic Service Script Action | Comments | |
Rx Access-Accept or local authentication (dynamic services data trigger authentication) | Setup | Up to 32 dynamic data services SAPs in a single message The dynamic services SAP that corresponds with the data trigger (also referred to as the dynamic services data trigger sap-id) must be part of this list. The Alc-Dyn-Serv-Script-Action VSA is optional for RADIUS authentication. | |
Modify / Teardown | Not supported | ||
Rx CoA (Nas-Port-Id or Acct-Session-Id of a dynamic service SAP different from the data trigger) | Setup | Not supported | |
Modify | Only a single dynamic data service per message Mandatory VSAs: Alc-Dyn-Serv-Script-Action Alc-Dyn-Serv-Script-Params | ||
Teardown | Tear down the dynamic service of the dynamic services SAP identified by the Acct-Session-Id or Nas-Port-Id. Alc-Dyn-Serv-Script-Action VSA is mandatory | ||
Rx CoA (Nas-Port-Id of a data trigger) | Setup | Not supported. Nas-Port-Id always targets the dynamic services SAP and not the data trigger. | |
Modify | Only a single dynamic data service per message Mandatory VSAs: Alc-Dyn-Serv-Script-Action Alc-Dyn-Serv-Script-Params | ||
Teardown | Tear down the dynamic service of the dynamic services SAP identified by the Nas-Port-Id. Because this is the data trigger SAP that is deleted, all dynamic services SAPs associated with the data trigger are also deleted. Alc-Dyn-Serv-Script-Action VSA is mandatory | ||
Rx CoA (Acct-Session-Id of a data trigger) | Setup | Only a single dynamic service SAP per message When successful, the dynamic services SAP is associated with the data trigger identified by the specified Acct-Session-Id. Mandatory VSAs: Alc-Dyn-Serv-Script-Action Alc-Dyn-Serv-SAP-Id Alc-Dyn-Serv-Script-Params Alc-Dyn-Serv-Policy (if no “default” policy configured) | |
Modify | Only a single dynamic service per message Modify the dynamic service of the dynamic services SAP identified by the Alc-Dyn-Serv-SAP-Id. The dynamic services SAP must be associated with the data trigger identified with the specified Acct-Session-Id. Mandatory VSAs: Alc-Dyn-Serv-Script-Action Alc-Dyn-Serv-SAP-Id Alc-Dyn-Serv-Script-Params | ||
Teardown | Tear down the dynamic service of the dynamic services SAP identified by the Alc-Dyn-Serv-SAP-Id. The dynamic services SAP must be associated with the data trigger identified with the specified Acct-Session-Id. If the dynamic services SAP identified by the Alc-Dyn-Serv-SAP-Id is a data trigger sap, then teardown the dynamic services of all dynamic services saps associated with that data trigger Mandatory VSAs: Alc-Dyn-Serv-Script-Action Alc-Dyn-Serv-SAP-Id | ||
Rx Disconnect Message (Nas-Port-Id or Acct-Session-Id of a dynamic service SAP different from a data trigger) | N/A | Tear down the dynamic service of the dynamic services SAP identified by the Acct-Session-Id or Nas-Port-Id | |
Rx Disconnect Message (Nas-Port-Id or Acct-Session-Id of a data trigger) | N/A | Tear down the dynamic services of all dynamic services SAPs associated with the data trigger identified by the Acct-Session-Id or Nas-Port-Id | |
A data-triggered dynamic service must be explicitly removed by one of the following:
The removal of a dynamic service SAP that is a data trigger SAP results in the removal (teardown) of all dynamic service SAPs associated with that dynamic services data trigger.
To prevent a data-triggered dynamic service from being immediately set up again after it was removed (because traffic is still being received), the following procedures can be used:
As a dynamic services data trigger capture-saps potentially forward all valid Ethernet frames for authentication to the control plane, control plane protection mechanisms are required to prevent overload conditions.
To enable dynamic services data trigger debugging, use the following debug commands:
During debugging, the system logs data trigger events such as:
The encap-val command limits the debug output to data trigger events for specific encapsulation values.
The mode specifies which data trigger events are logged: all events or dropped data trigger events only.
Table 59 describes the functions available in the SR OS alc.dyn Python module to create dynamic data services.
alc.dyn functions | Description |
dyn.action (dictionary) | Executes the setup, modify or teardown function that is found with a lookup in the specified dictionary using the function-key present in the script parameters. The script-parameters can be obtained from RADIUS in the Alc-Dyn-Serv-Script-Params VSA or can be configured in the local authentication database. The action (setup, modify or teardown) is determined from the Alc-Dyn-Script-Action VSA. Returns: None (no value) dictionary - Python dictionary with format: dictionary = {function-key-1 : (setup-function-1, modify-function-1|None, revert-function-1|None, teardown-function-1), …, function-key-n : (setup-function-n, modify-function-n|None, revert-function-n|None, teardown-function-n) } where:
|
dyn.add_cli (string) | Executes the specified CLI commands to create the dynamic data service Returns: None (no value) string - CLI commands. The string can span multiple lines in the script when enclosed in three double quotes ("""). |
dyn.get_circuit-id() | Returns a string containing the control channel circuit-id (DHCP relay agent option 82 or PPP tags) |
dyn.get_remote-id() | Returns a string containing the control channel remote-id (DHCP relay agent option 82 or PPP tags) |
dyn.get_sap() | Returns a string containing the dynamic data service sap id: the value of the Alc-DynServ-SAP-Id VSA. A wildcard hash (#) in the VSA value is replaced with the corresponding control channel or data trigger port or vlan id field. |
dyn.reference (function-key, reference-id, dictionary) | Create a dynamic reference to another function in the script. Typically used to create n:1 relations between dynamic data services, such as multiple SAPs in a VPLS service or multiple services for the same customer. Dynamic referencing is only allowed in setup functions. Corresponding teardown functions will automatically dereference. Returns a dictionary provided by the setup script matching the function-key: function-key - key in the action dictionary (see dyn.action) to find the corresponding setup or teardown functions. reference-id - unique reference ID string that identifies the dynamic reference (for example, all SAPs from a VPLS service would have the same reference id). dictionary - a Python dictionary containing parameters for use in the setup or teardown function, such as to generate CLI output. |
dyn.select_free_id (type) | Returns a string representing a free identifier of the specified type. type - identifier type that will be returned:
The corresponding filters will be shown in the system as “_tmnx_dyn_<number>” |