AT&T Workflow Driver Service

This service implements the ONU and Subscriber management logic required by AT&T. It's also a good start if you need to implement different logic to suit your use case.

NOTE: This service depends on models contained in the R-CORD and OLT Services, so make sure that the rcord-synchronizer and volt-synchronzier are running


This service is composed of the following models:

  • AttWorkflowDriverServiceInstance. This model holds various state associated with the state machine for validating a subscriber's ONU.
    • serial_number. Serial number of ONU.
    • authentication_state. [AWAITING | STARTED | REQUESTED | APPROVED | DENIED]. Current authentication state.
    • of_dpid. OLT Openflow ID.
    • uni_port_id. ONU UNI Port ID.
    • onu_state. [AWAITING | ENABLED | DISABLED]. State of the ONU.
    • status_message. Status text of current state machine state.
    • dhcp_state. [AWAITING | DHCPDISCOVER | DHCPACK | DHCPREQUEST]. Current DHCP state.
    • ip_address. Subscriber ip address.
    • mac_address. Subscriber mac address.
    • oper_onu_status. [AWAITING | ENABLED | DISABLED]. ONU operational state.
  • AttWorkflowDriverWhiteListEntry. This model holds a whitelist authorizing an ONU with a specific serial number to be connected to a specific PON Port on a specific OLT.
    • owner. Relation to the AttWorkflowDriverService that owns this whitelist entry.
    • serial_number. Serial number of ONU.
    • pon_port_id. Pon port identifier.
    • device_id. OLT device identifier.

Example Tosca - Create a whitelist entry

tosca_definitions_version: tosca_simple_yaml_1_0
  - custom_types/attworkflowdriverwhitelistentry.yaml
  - custom_types/attworkflowdriverservice.yaml
description: Create an entry in the whitelist

      type: tosca.nodes.AttWorkflowDriverService
        name: att-workflow-driver
        must-exist: true

      type: tosca.nodes.AttWorkflowDriverWhiteListEntry
        serial_number: BRCM22222222
        pon_port_id: 536870912
        device_id: of:000000000a5a0072
        - owner:
            node: service#att
            relationship: tosca.relationships.BelongsToOne

Integration with other Services

This service integrates closely with the R-CORD and vOLT services, directly manipulating models (RCORDSubscriber, ONUDevice) in those services.

Synchronizer Workflows

This synchronizer implements only event_steps and model_policies. It's job is to listen for events and execute a state machine associated with those events. Service Instances are created automatically when ONU events are received. As the state machine changes various states for authentication, etc., those changes will be propagated to the appropriate objects in the R-CORD and vOLT services.

The state machine is described below.

Service Instances State Machine

Topic Event Actions ONU State Subscriber State Message status: activated Validate against whitelist (successful) enabled awaiting-auth ONU has been validated status: activated Validate against whitelist (failed, missing) disabled awaiting-auth ONU not found in whitelist status: activated Validate against whitelist (failed, location) disabled awaiting-auth ONU activated in wrong location status: disabled Mark ONU as disabled and revoke subscriber authentication disabled awaiting-auth ONU has been disabled, revoked subscriber authentication authenticationState: STARTED Update subscriber status enabled awaiting-auth Authentication started authenticationState: REQUESTED Update subscriber status enabled awaiting-auth Authentication requested authenticationState: APPROVED Update subscriber status enabled enabled Authentication succeded authenticationState: DENIED Update subscriber status enabled auth-failed Authentication denied -- Update subscriber ip and mac address enabled enabled DHCP information added

Model Policy: AttWorkflowDriverServiceInstancePolicy

This model policy is responsible for reacting to state changes that are caused by various event steps, implementing the state machine described above.

Event Step: SubscriberAuthEventStep

Listens on and updates the authentication_state fields of AttWorkflowDriverServiceInstance.

Event Step: SubscriberDhcpEventStep

Listens on and updates the dhcp_state, ip_address, and mac_address fields of AttWorkflowDriverServiceInstance.

Event Step: ONUEventStep

Listens on and updates the onu_state of AttWorkflowDriverServiceInstance. Also resets authentication_state when an ONU is disabled. Automatically creates AttWorkflowDriverServiceInstance as necessary.

Events format

This events are generated by various applications running on top of ONOS and published on a Kafka bus. Here is the structure of the events and their topics.

  "timestamp": "2018-09-11T01:00:49.506Z",
  "status": "activated", // or disabled
  "serialNumber": "ALPHe3d1cfde", // ONU serial number
  "portNumber": "16", // uni port
  "deviceId": "of:000000000a5a0072" // OLT OpenFlow Id

  "timestamp": "2018-09-11T00:41:47.483Z",
  "deviceId": "of:000000000a5a0072", // OLT OpenFlow Id
  "portNumber": "16", // uni port
  "serialNumber": "ALPHe3d1cfde", // ONU serial number
  "authenticationState": "STARTED" // REQUESTED, APPROVED, DENIED

  "deviceId" : "of:000000000a5a0072",
  "portNumber" : "16",
  "macAddress" : "90:e2:ba:82:fa:81",
  "ipAddress" : ""
  "serialNumber": "ALPHe3d1cfde", // ONU serial number

results matching ""

    No results matching ""