LLCControl

Type

SwitchKit API message

Purpose

Use LLCControl to manage the behavior of LLC. LLCControl can be used to dynamically modify environment variables and to manage SS7 redundancy.

Description

The message is used for controlling or modifying the behavior of the LLC. The message consists of a sequence of TLVs, a command TLV followed by one or more parameter TLVs.

Establish Redundancy

The SK_LLC_CONTROL_ESTABLISH_REDUNDANCY TLV is used to initiate synchronization between to components that are configured as redundant pairs. Synchronization can only be initiated if the components have been previously configured as redundant pairs and each component is in a state where synchronization can commence. A successful reply to this message indicates that the synchronization process has been initiated. It does not indicate the success or failure of that synchronization process.

The use of this TLV requires that the ComponentType and PrimaryLNI TLV's also be included and properly defined. The only component type supported is SS7 (0x1000).

Control Switchover

SK_LLC_CONTROL_SWITCHOVER_COMP_TLV (0x0021) is used to initiate a switchover of fully synchronized, redundant components. Switchover can only be initiated if the components have been previously configued as redundant pairs and each component is in a state where switchover can occur. A successful reply to this message indicates that the switchover process has been initiated. It does not indicate the success or failure of that switchover process.

The use of this TLV requires that the Component Type and Primary LNI TLV's also be included and properly defined. The only component type supported is SS7(0x1000).

Sent by

Application

How to use

To use LLCControl, construct the message and set the TLV information.

SKC_LLCControllq;

lq.setDataSize(DataSize);

lq.setTLVCount(TLVCount);

lq.setData(data);

Arguments

The following table shows the arguments you can change:

Argument

Description

DataSize

Number of bytes of the data.

TLVCount

Number of TLVs in the data.

data

Data bytes.

Status Argument

The following are values that can be returned in the Status argument of LLCControlAck

Value

Description

SK_BAD_PARAM

Returned if there is an unknown command TLV.

SK_BAD_OR_MISSING_PARAM

A required parameter TLV is missing from the LLCControl.

SK_NODE_NOT_PREVIOUSLY_DEFINED

A node specified in a parameter TLV is unknown to the LLC.

SK_UNABLE_TO_INITIATE_SYNC

An attempt to initiate synchronization of SS7 redundant components failed.

SK_UNABLE_TO_INITIATE_SWITCHOVER

An attempt to initiate switchover of SS7 redundant components failed.

SK_UNKNOWN_REDUNDANT_COMPONENT

The specified redundant component is unknown.

 

 

Command TLVs

SK_LLC_CONTROL_ESTABLISH_REDUNDANCY (0x0015)

Byte

Description

Tag

Data[0, 1] = SK_LLC_CONTROL_ESTABLISH_REDUNDANCY (0x1015)

Length

Data[2,3] = 0x0000

SK_LLC_CONTROL_SWITCHOVER_COMP_TLV (0x0021)

Byte

Description

Tag

Data[0, 1] = SK_LLC_CONTROL_SWITCHOVER_COMP_TLV (0x0021)

Length

Data[2, 3] = 0x0000

 

Parameter TLVs

SK_LLC_CONTROL_GO_STANDBY_TLV (0x0016)

This SK_LLC_CONTROL_GO_STANDBY_TLV will cause an LLC switchover. The current Active LLC will become Standby and will inform the current Standby (if any) that it should become Active. Note that switchover behavior is dependant on the current SK_LLC_SWITCHBACK_MODE environment variable. See the environment variables section for details.

Byte

Description

Tag

Data[0, 1] = SK_LLC_CONTROL_GO_STANDBY_TLV (0x0016)

Length

Data[2, 3] = 0x0000

Value

Not Applicable

SK_COMPONENT_TYPE_TLV (0x1008)

Byte

Description

Tag

Data[0, 1] = SK_COMPONENT_TYPE_TLV (0x1008)

Length

Data[2, 3] = 0x0002

Value

Data[4, 5] = Component ID (currently only support 0x1000 for SS7)

SK_PRIMARY_LNI_TLV (0x1006)

Byte

Description

Tag

Data[0, 1] = SK_PRIMARY_LNI_TLV (0x1006)

Length

Data[2, 3] = 0x0002

Value

Data[4, 5] = Component ID (currently only support 0x1000 for SS7)

 

C Structure

typedef struct {

unsigned short DataSize;

UBYTE TLVCount;

UBYTE Data[250];

} SK_LLCControl;

C Structure Response

typedef struct {

int Status;

UBYTE reserved21[10]

} SK_LLCControlAck;

C++ Class

class SKC_LLCControl : public SKC_ToolkitMessage {

public:

unsigned short getDataSize() const;

void setDataSize(unsigned short x);

UBYTE getTLVCount() const;

void setTLVCount(UBYTE x);

const UBYTE *getData() const;

UBYTE *getTLVData();

void setTLVData(UBYTE *x);

};

C++ Class Response

class SKC_LLCControlAck : public SKC_ToolkitAck {

public:

int getStatus() const;

void setStatus(int x);