# Configuring board clocking

When multiple boards are connected to the CT bus, you must set up a bus clock to synchronize timing between them. In addition, you can configure alternative (or fallback) clock sources to provide the clock signal if the primary source fails.

This topic describes:

- AG 2000 clocking capabilities

- Clock configuration methods

- Configuring board clocking using keywords

- A multiple board system example

To create a robust clocking configuration, you must understand basic clocking concepts such as clock mastering and clock fallback. This topic assumes that you have a basic understanding of CT bus clocking. For a complete overview of CT bus clocking, refer to the NMS OAM System User's Manual.

## AG 2000 clocking capabilities

This topic describes the rules and limitations that apply to setting up CT bus clocking for AG 2000 boards.

When an AG 2000 board is configured as the system primary clock master, the boards's first timing reference must be set to OSC. Clock fallback should be disabled.

Note: An AG 2000 board should only be configured as the system primary clock master if there are no digital T1 or E1 boards in the system (that is, if the system contains only analog boards). Refer to the NMS OAM System User's Manual for information about assessing clocking priorities in a mixed-board system.

When an AG 2000 board is configured as the system secondary clock master:

- The board's first timing reference must be the system's primary clock.

- The board's fallback timing reference must be set to OSC.

When an AG 2000 board is configured as a clock slave:

- The board's first timing reference must be the system's primary clock.

- The board's fallback timing reference must be the system's secondary clock.

- If there is no secondary clock master for the system, the board's fallback timing reference must be set to OSC. In this case, if clock fallback occurs, the board is not synchronized with the system until you reconfigure the board's clocking.

Caution: | Versions C.5 or earlier of the AG 2000 board do not support clock fallback, cannot act as system secondary clock masters, and cannot master or slave to the B clock.

The following tables summarize the CT bus clocking capabilities of AG 2000 boards:

Note: NETREF refers to NETREF1 on the H.110 bus.

### Clocking capabilities as primary master

Capability | Yes/No | Comments
--- | --- | ---
Serve as primary master | Yes | Use this board as a master only if no boards with digital trunks are present on the CT bus.
Drive A_CLOCK | Yes |
Drive B_CLOCK | Yes |
Available primary timing references:
Local trunk | No | Only digital trunks carry timing reference signals.
NETREF1 | No | This board cannot use NETREF1 as a timing reference.
NETREF2 | No | NETREF2 is available for H.110 boards only.
OSC | Yes |
Fallback to secondary timing reference | No | There is no timing reference to fallback to.
Available secondary timing references:
Local trunk | No | Only digital trunks carry timing reference signals.
NETREF1 | No |
NETREF2 | No | NETREF2 is available for H.110 boards only.
OSC | No |
Slave to secondary master if both references fail | No |

### Clocking capabilities as secondary master

Capability | Yes/No | Comments
--- | --- | ---
Serve as secondary master | Yes | Use this board as a master only if no boards with digital trunks are present on the CT bus.
Drive A_CLOCK | Yes | If the primary master drives B_CLOCK, the secondary master drives A_CLOCK.
Drive B_CLOCK | Yes | If the primary master drives A_CLOCK, the secondary master drives B_CLOCK.
Available secondary timing references:
Local trunk | No | Only digital trunks carry timing reference signals.
NETREF1 | No | This board cannot use NETREF1 as a timing reference.
NETREF2 | No | NETREF2 is available for H.110 boards only.
OSC | Yes |

### Clocking capabilities as slave

Capability | Yes/No | Comments
--- | --- | ---
Serve as slave | Yes |
Slave to A_CLOCK | Yes |
Slave to B_CLOCK | Yes |
Available fallback timing references:
A_CLOCK | Yes |
B_CLOCK | Yes |
OSC | Yes | The board is not synchronized until the application reconfigures the clock.

### Other clocking capabilities

Capability | Yes/No | Comments
--- | --- | ---
Drive NETREF1 | Yes |
Drive NETREF2 | No | NETREF2 is available for H.110 boards only.
Operate in standalone mode | Yes |

## Clock configuration methods

You can configure clocking in your system in one of two ways:

Method | Description
--- | ---
Using clockdemo application model | Create an application that assigns each board a clocking mode, monitors clocking changes, and reconfigures clocking when clock fallback occurs. A sample clocking application, clockdemo, is provided with Natural Access. clockdemo provides a robust fallback scheme that suits most system configurations. clockdemo source code is included, allowing you to modify the program if your clocking configuration is complex. For more information about clockdemo, refer to the NMS OAM System User's Manual. Note: Most clocking applications (including clockdemo) require that all boards on the CT bus be started in standalone mode.
Using board keywords (with or without application intervention) | For each board on the CT bus, set the board keywords to determine the board's clocking mode and to determine how each board behaves if clock fallback occurs. This method is described in this topic. Unlike the clockdemo application, which allows you to specify several boards to take over mastery of the clock when another board fails, the board keyword method allows you to specify only a single secondary clock master. For this reason, the board keyword method is best used to implement clock fallback in your system, or in test configurations where clock reliability is not a factor. The board keyword method does not create an autonomous clock timing environment. If you implement clock fallback using this method, an application must still intervene when clock fallback occurs to reset system clocking before other clocking changes occur. If both the primary and secondary clock masters stop driving the clocks, and an application does not intervene, the boards default to standalone mode.

Choose only one of these configuration methods across all boards on the CT bus. Otherwise, the two methods can interfere with one another and board clocking may not operate properly.

## Configuring AG 2000 boards using board keywords

AG 2000 board keywords allow you to configure the board in the following ways:

- System primary clock master

- System secondary clock master

- Clock slave

- Standalone mode

You can also use board keywords to establish clock fallback sources.

The following sections describe how to use board keywords to specify the clocking role of each AG 2000 board in a system.

### Primary clock master

Use the following board keywords to configure an AG 2000 board as a primary clock master:

Keyword | Description
--- | ---
Clocking.HBus.ClockSource | Specifies the source from which this board derives its timing. Set this keyword to OSC.
Clocking.HBus.ClockMode | Specifies the CT bus clock that the board drives. Set this keyword to reference either A clock (MASTER_A) or B clock (MASTER_B).
Clocking.HBus.AutoFallBack | Set this keyword to NO.

Note: If the primary master's first source fails and then returns, the board's timing reference (and consequently, the references for any slaves) switches back to the first timing source. This is not true for the secondary timing master.

### Secondary clock master

Use the following board keywords to configure an AG 2000 board as a secondary clock master:

Keyword | Description
--- | ---
Clocking.HBus.ClockSource | Specifies the source from which this board derives its timing. Set this keyword to the clock driven by the primary clock master. For example, if the primary master drives A clock, set this keyword to A_CLOCK.
Clocking.HBus.ClockMode | Specifies the CT bus clock that the secondary master drives. Set this keyword to the clock (MASTER_A or MASTER_B) not driven by the primary clock master.
Clocking.HBus.AutoFallBack | Enables or disables clocking fallback on the board. Set this keyword to YES.
Clocking.HBus.FallBackClockSource | Specifies the alternate timing reference to use when the master clock does not function properly. Set this keyword to OSC.

Note: If the primary master's timing reference recovers, the secondary master continues to drive the clock referenced by all clock slaves in the system until the application intervenes.

### Clock slave

Use the following board keywords to configure an AG 2000 board as a clock slave:

Keyword | Description
--- | ---
Clocking.HBus.ClockMode | Specifies the CT bus clock from which the board derives its timing. Set this keyword to SLAVE to indicate that the board does not drive any CT bus clock.
Clocking.HBus.ClockSource | Specifies the source from which this clock derives its timing. Set this keyword to reference the clock driven by the primary clock master.
Clocking.HBus.AutoFallBack | Enables or disables clock fallback on the board.
Clocking.HBus.FallBackClockSource | Specifies the alternate clock reference to use when the master clock does not function properly. For clock slaves, set this keyword to reference the clock (A_CLOCK or B_CLOCK) driven by the secondary clock master.

### Standalone mode

To configure AG 2000 boards in standalone mode so the board references its own clocking information, set Clocking.HBus.ClockMode to STANDALONE. The board then uses its own oscillator as a timing signal reference. However, the board cannot make switch connections to the CT bus.

## Multiple board system example

The following example assumes a system configuration in which three AG 2000 boards reside in a single chassis. The boards are configured in the following way using board keywords:

Board | Configuration
--- | ---
Board 0 | System primary bus master (driving the A clock)
Board 1 | System secondary bus master (driving the B clock)
Board 2 | Clock slave (clock fallback enabled)

This configuration assigns the following clocking priorities:

Priority | Timing reference
--- | ---
First | Board 0, local oscillator
Second | Board 1, local oscillator

The following illustration shows a multiple-board system with a primary and secondary clock master:

The following table shows board keywords used to configure the boards according to the configuration shown in the preceding illustration:

Board | Role | Clocking keyword settings
--- | --- | ---
0 | Primary clock master | Clocking.HBus.ClockMode = MASTER_A Clocking.HBus.ClockSource = OSC Clocking.HBus.AutoFallBack = NO
1 | Secondary clock master | Clocking.HBus.ClockMode = MASTER_B Clocking.HBus.ClockSource = A_CLOCK Clocking.HBus.AutoFallBack = YES Clocking.HBus.FallBackClockSource = OSC
2 | Clock slave | Clocking.HBus.ClockMode = SLAVE Clocking.HBus.ClockSource = A_CLOCK Clocking.HBus.AutoFallBack = YES Clocking.HBus.FallBackClockSource = B_CLOCK

In this configuration, Board 0 is the primary clock master and drives A_CLOCK. All slave boards on the system use A_CLOCK as their first timing reference. Board 0 references its timing from its local oscillator.

If the clocking signal used by Board 0 fails, then Board 0 stops driving A_CLOCK. The secondary clock master (Board 1) then falls back to a timing reference based on its local oscillator and uses this signal to drive B_CLOCK. B_CLOCK and becomes the timing source for all boards that use B_CLOCK as their backup timing reference.

Note: For this clock fallback scheme to work, all clock slaves must specify A_CLOCK as the clock source and B_CLOCK as the clock fallback source.