# 2 Common Atomic Functions

This chapter describes the atomic functions and events that are common to all PPL components. AF 1- AF 50 are common to all PPL components. See the relevant chapter for protocol-specific *.exl files.

Atomic Functions

AF Number | 1
--- | ---
Name | Create New State Machine Context
Description | Creates a new state machine context for the protocol being transferred into. This function must be invoked prior to AF_002 (Jump To State Machine). The Protocol ID can be the currently active protocol or a non-active protocol.
Arg1 | <Protocol ID>
Arg2 | <Not Used>

AF Number | 2
--- | ---
Name | Jump to State Machine
Description | Transfers from the current state machine to the internal state machine indicated by Arg1, which becomes the current state, and the Internal PPL Event indicated by Arg2 is processed.
Arg1 | <Internal State ID>
Arg2 | <Internal PPL Event>

AF Number | 3
--- | ---
Name | Return to State Machine
Description | Returns to the calling PPL state machine. Both AF_001 (Create New State Machine Context) and AF_002 (Jump To State Machine) must be invoked prior to AF_003. The current state machine context will be freed up and the calling state machine's context will be restored.
Arg1 | <Not Used>
Arg2 | <Not Used>

AF Number | 11
--- | ---
Name | Generates a PPL Internal Event (Indicated by Config Byte)
Description | Generates a PPL Event indicating the value of the configuration byte indicated by Arg1.
Arg1 | <Configuration Byte Offset> 1-200
Arg2 | <Not Used>

AF Number | 12
--- | ---
Name | Compare PPL Configuration Byte To Value
Description | Tests the value of the configuration byte indicated by Arg1 against the value indicated by Arg2.
Arg1 | <Configuration Byte Offset> 1-200
Arg2 | <Value>

Test Result | PPL Internal Event
--- | ---
< | 0
> | 1
= | 2

AF Number | 13
--- | ---
Name | Generates a PPL Internal Event (Indicated by GPR)
Description | Generates a PPL Event equal to the value of the configuration byte given by the GPR indicated by Arg1.
Arg1 | <GPR #> 1-25
Arg2 | <Not Used>

AF Number | 14
--- | ---
Name | Compare PPL Configuration Byte to Value
Description | Compares the value of the configuration byte given by the GPR indicated by Arg1 against the value indicated by Arg2.
Arg1 | <GPR #> 1-25
Arg2 | <Value>

Result | PPL Internal Event
--- | ---
< | 0
> | 1
= | 2

AF Number | 15
--- | ---
Name | Compare PPL Configuration Byte In GPR to Byte Offset Value
Description | Tests the value of the configuration byte given by the GPR indicated by Arg1 against the value of the configuration byte indicated by Arg2.
Arg1 | <GPR #> 1-25
Arg2 | <Configuration Byte Offset> 1-200

Test Result | PPL Internal Event
--- | ---
< | 0
> | 1
= | 2

AF Number | 21
--- | ---
Name | Clear General Purpose Register
Description | Clears the GPR indicated by Arg1.
Arg1 | <GPR #> 1-25
Arg2 | <Not Used>

AF Number | 22
--- | ---
Name | Clear Range of General Purpose Registers
Description | Clears a range of PPL GPRs beginning with the GPR # indicated by Arg1 and including the number of registers indicated by Arg2.
Arg1 | <Beginning GPR #> 1-25
Arg2 | # of Registers to Clear>

AF Number | 23
--- | ---
Name | Save Value in General Purpose Register
Description | Saves the value indicated by Arg2 in the GPR indicated by Arg1.
Arg1 | <GPR #> 1-25
Arg2 | <Value> 0-255

AF Number | 24
--- | ---
Name | Increment General Purpose Register
Description | Increments the GPR indicated by Arg1 by the value indicated by Arg2.
Arg1 | <GPR #> 1-25
Arg2 | <Increment Value>

AF Number | 25
--- | ---
Name | Compare GPR to Value
Description | Compares the value in the GPR indicated by Arg1 against the value indicated by Arg2, and returns a decision event to drive the PPL state machine out of an internal decision state.
Arg1 | <GPR #> 1-25
Arg2 | <Value>

Test Result | PPL Internal Event
--- | ---
= | 1
other | 0

AF Number | 26
--- | ---
Name | Compare PPL General Purpose Registers
Description | Tests the value in the GPR indicated by Arg1 against the value in the GPR indicated by Arg2.
Arg1 | <GPR #> 1-25
Arg2 | <GPR #> 1-25

Test Result | PPL Internal Event
--- | ---
< | 0
> | 1
= | 2

AF Number | 27
--- | ---
Name | Test Value in GPR to Configuration Byte
Description | Tests the value in the GPR indicated by Arg1 against the value of the configuration byte in the GPR indicated by Arg2.
Arg1 | <GPR #> 1-25
Arg2 | <GPR #> 1-25

Test Result | PPL Internal Event
--- | ---
< | 0
> | 1
= | 2

AF Number | 28
--- | ---
Name | PPL Test GPR for Any Value
Description | Function which generates a decision event based on the value in the GPR indicated by Arg1.
Arg1 | <GPR #> 1-25
Arg2 | <Not Used>

Test Result | PPL Internal Event
--- | ---
GPR # N | N

for example: if GPR = 45, then PPL Internal Event = 45

AF Number | 29
--- | ---
Name | Decrement General Purpose Register
Description | Decrements the GPR indicated by Arg1 by the value indicated by Arg2. A GPR cannot be decremented below 0. If the decrement value in Arg2 is greater than the value of the GPR in Arg1, the GPR will be set to 0.
Arg1 | <GPR #> 1-25
Arg2 | <Decrement Value>

AF Number | 30
--- | ---
Name | Move GPR to GPR
Description | Moves the value stored in the GPR indicated by Arg1 to the GPR indicated by Arg2.
Arg1 | <GPR #> 1-25
Arg2 | <GPR #> 1-25

AF Number | 31
Name | PPL General Purpose Register <- General Purpose Register Logical AND Config Bytes
Description | Performs logical AND statement between Arg 1 and Arg 2
Arg1 | <Register Number> (1:53)
Arg2 | <Config Byte Offset> 1:100

AF Number | 32
Name | PPL General Purpose Register Number1 <- General Purpose Register Number1 Logical AND General Purpose Register Number2
Description | Performs logical AND statement between Arg 1 and Arg 2. The result is placed into Arg 1
Arg1 | <Register 1 Number> (1:53)
Arg2 | <Register 2 Number> (1:53)

AF Number | 33
Name | PPL General Purpose Register (High 16) < General Purpose Register (High 16) Logical AND Immediate Value
Description | Perform a logical AND statement between MSB of register stored in Arg 1, and the MSBs of register stored in Arg 2. The result is placed in the MSB of Arg 1.
Arg1 | <Register Number> 1:25
Arg2 | <Value> 0:65535

AF Number | 34
Name | PPL General Purpose Register (Low 16) < General Purpose Register (Low 16) Logical AND Immediate Value
Description | Performs a logical AND statement between LSB of
Arg1 | <Register Number> 1:25
Arg2 | <Value> 0 - 65535

AF Number | 35
Name | PPL General Purpose Register <- General Purpose Register Logical OR Config Bytes
Description | Performs logical OR statement between Arg 1 and Arg 2
Arg1 | <Register Number> 1:53
Arg2 | <Config Byte Offset> 1:100

AF Number | 36
Name | PPL General Purpose Register Number1 <- General Purpose Register Number1 Logical OR General Purpose Register Number2
Description | Performs logical OR statement between Arg 1 and Arg 2. Places result into Arg 1 register.
Arg1 | <Register 1 Number> 1:53
Arg2 | <Register 2 Number> 1:53

AF Number | 37
Name | PPL General Purpose Register (High 16) <- General Purpose Register (High 16) Logical OR Immediate Value
Description | Performs logical OR statement between MSB of register stored in Arg 1 and Arg 2. The result is placed in the MSB or Arg 1 register.
Arg1 | <Register Number> 1:25
Arg2 | <Value> 0:65535

AF Number | 38
Name | PPL General Purpose Register (Low 16) <- General Purpose Register (Low 16) Logical OR Immediate Value
Description | Performs a logical OR statement between the LSB of register in Arg 1 and Arg 2. The result is placed in the LSB of Arg 1.
Arg1 | <Register Number> 1:25
Arg2 | <Value> 0:65535

AF Number | 39
Name | PPL Shift Right Logical Gen. Purpose Register
Description | Performs a bit shift right, on the register indicated by Arg 1. The number of bits to shift is indicated by Arg 2.
Arg1 | <Register #> 1:53
Arg2 | <# bits> 1:64

AF Number | 40
--- | ---
Name | Block Event
Description | Blocks an event for later processing in the next normal state.
Arg1 | <Not Used>
Arg2 | <Not Used>

AF Number | 41
--- | ---
Name | PPL Shift Left Logical GPR
Description | Shifts the value in the GPR indicated by argument 1 left by the number of bits indicated by argument 2.
Arg1 | <Register #>
Arg2 | <# of Bits>

AF Number | 42
--- | ---
Name | PPL Load GPR with Contents of 4 or 8 Config Bytes
Description | Loads the value of the PPL Config Bytes beginning with the byte indicated by argument 2 into the GPR indicated by argument 1.
Arg1 | <Register #>
Arg2 | <Starting Config Byte>

AF Number | 43
--- | ---
Name | PPL Load GPR with Contents of Config Byte
Description | Loads the value of the PPL Config Byte indicated by argument 2 into the GPR indicated by argument 1.
Arg1 | <Register #>
Arg2 | <Config Byte Offset>

AF Number | 46
--- | ---
Name | Set PPL Timer
Description | Sets the PPL timer indicated by Arg1 to the value of the Timer ID indicated by Arg2, configured with the PPL Timer Configure message. The Timer Number refers to the three internal PPL multi-purpose timers available per channel. The Timer ID refers to the 100 Generic Protocol Timer IDs that can be configured with the PPL Timer Configure message. A PPL Timer’s value can be adjusted by changing the Timer ID value with the PPL Timer Configure message, without modifying the PPL State/Event or Primitive tables.
Arg1 | <Timer Number> 1-3
Arg2 | <Timer ID> 1-100

The expiration of PPL timers results in the generation of the following PPL events:

Expiration of: | PPL Internal Event
--- | ---
Timer 1 | PPLevTIMER1
Timer 2 | PPLevTIMER2
Timer 3 | PPLevTIMER3

AF Number | 47
--- | ---
Name | Disable PPL Timer
Description | Disables the timer indicated by Arg1.
Arg1 | <Timer Number> 1-3
Arg2 | <Not Used>

AF Number | 48
--- | ---
Name | Set PPL Timer in 10ms Units
Description | Activates the PPL timer indicated by Arg1 with the value indicated by Arg2 in 10ms units.
Arg1 | <Timer Number> 1-3
Arg2 | <Timer Value>

AF Number | 49
--- | ---
Name | Set PPL Timer in 100ms Units
Description | Activates the PPL timer indicated by Arg1 with the value indicated by Arg2 in 100ms units.
Arg1 | <Timer Number> 1-3
Arg2 | <Timer Value>

AF Number | 50
--- | ---
Name | Set PPL Timer in 1000ms Units
Description | Activates the PPL timer indicated by Arg1 with the value indicated by Arg2 in 1000ms units.
Arg1 | <Timer Number> 1-3
Arg2 | <Timer Value>

EVENTS

The following events are common to all PPL components.

191 | PPLevTIMER 1 PPL Timer 1 has expired.
192 | PPLevTIMER 2 PPL Timer 2 has expired.
193 | PPLevTIMER 3 PPL Timer 3 has expired.
Events 200 - 455 |
Internal Event N generated by a test AF to drive the state machine out of a decision type state, where:
Event N = Event # - 200. |
For example: |
EVENT 200 = Internal Event 0 EVENT 321 = Internal Event 121 EVENT 455 = Internal Event 255 |
Events 500 - 755 |
Internal Event N from Layer 5 generated by a PPL Event Request message, where:
Event N = Event # - 500. |

Downloading and Assigning a Protocol

Download the protocol to the switch. See the Developer’s Guides for downloading methods. Assign the protocol to channels or other objects (such as SS7 links) using the PPL Assign message.

Perform any required PPL configuration such as:

• Timers (PPL Timer Configure)

• Config Bytes (PPL Configure)

• Signaling (PPL Transmit Signal Configure, E1 only).

Bring the channels or other objects in service using the Service State Configure message.

See Programmable Protocol Language.
See Atomic Function.
The condition of a component at a given instant. The current "context" of a PPL object, such as Idle, Seizing, Answered. In PPL files, a State is represented by a circle.
A State Machine defines the events (functions) required to drive a channel from one state to another through a graphical interface tool. A State Machine is configured and managed using API Messages or the PPL Tool. Based on the occurrence of an Event, a State Machine drives each channel through its Protocol Tables. It creates one state from another, invoked by an event. Processing is complete when a "normal" state is reached. "Wait" and "Stable" are normal states.
A condition that, when met, drives a state machine from one state to another. A condition that drives a Component out of its current state by invoking an associated primitive.
In PPL, a condition that, when met, drives a state machine (PPL Component) from one state to another, by invoking an associated Primitive. In PPL files, an Event is marked by an arrow and text.
Most Significant Bit
Least Significant Bit
Application layer of the CSP.
See Signaling System Number Seven.
A digital communications link - voice, data, and video at a 2.048 Mbps rate; 30B/2D or 31B/1D (ISDN); non-North American version of T1.