GenericLLCReport

Type

SwitchKit API message

Description

This message reports the status of LLC entities to applications that have registered for it. In particular it will report the status of the LLC socket connections, LLC to LLC redundancy status, and the service state of channels groups being watched by an application.

Sent by

LLC to applications that have registered for it using the SK_ msgRegister() function with the parameter SK_GENERIC_LLC_REPORT.

C Structure

typedef struct {

unsigned short DataSize;

UBYTE ReportType;

UBYTE TLVCount;

UBYTE Data[249];

} SK_GenericLLCReport;

C++ Class

class SKC_GenericLLCReport : public SKC_ToolkitMessage {

public:

unsigned short getDataSize() const;

void setDataSize(unsigned short x);

UBYTE getReportType() const;

void setReportType(UBYTE x);

UBYTE getTLVCount() const;

void setTLVCount(UBYTE x) ;

const UBYTE *getData() const;

UBYTE *getData();

void setData(UBYTE *x);

};

 

Arguments

The following table shows the arguments sent by the LLC:

Argument

Description

DataSize

Number of bytes of the data.

ReportType

Type of GenericLLCReport

TLVCount

Number of TLVs in the data.

data

Data bytes

Report Types

The following report types are used in the GenericLLCReport message.

Report Type

Value

SK_NSR_CHANGE

0x01 (not currently used)

SK_NSQ_CHANGE

0x02 (not currently used)

SK_PM_CHANGE

0x03

SK_SOCKET_CHANGE

0x04 (not currently used)

SK_SSC_UPDATE

0x05

SK_LINK_UP

0x06

SK_LINK_DOWN

0x07

SK_GROUP_WATCHER_STATUS

0x08

SK_CHANNEL_RANGE_STATUS

0x09

SK_LLC_REDUNDANCY

0x0b

TLVs

Several different TLVs can be reported within the GenericLLCReport:

• SK_LLCREDSTATE_TLV (0x0004)

• SK_LLCREDSTATE_TLV (0x0005)

• SK_LLCREDSETTINGS_TLV (0x0006)

• SK_POLL_DATA_TLV (0x1000)

• Sk_IPV4_TLV (0x1001)

• SK_ROUTING_TLV (0x1002)

• Sk_LNI_TLV (0x1003)

• SK_CHANNEL_GROUP_TLV (0x1004)

• SK_CHANNEL_RANGE_TLV (0x1005)

Report Type: SK_LLC_REDUNDANCY

A GenericLLCReport of report type, SK_LLC_REDUNDANCY is generated and sent to registered applications by the active LLC when:

• An application connects

• The LLC changes redundancy states

• An LLCQuery of type SK_LLC_REDUNDANCY_QUERY_TLV is sent to the active LLC.

The standby LLC sends reports under the same circumstances. However, because only the active LLC can communicate with the standby LLC, the primary LLC (PLLC) to redundant LLC (RLLC) link must be in SK_LINK_UP state for the application to receive the reports. If the PLLC to RLLC link is in state SK_LINK_DOWN, no responses from the standby LLC will be seen.

Possible TLV Combinations

Report Type

LLCREDTYPE_TLV

LLCREDSTATE_TLV

LLCREDSETTINGS_TLV

SK_LLC_Redundancy

1

1

1

 

TLV Syntax

The TLVs described in this section are used with the SK_LLC_REDUNDANCY report type in a GenericLLCReport message.

• SK_LLCREDTYPE_TLV (0x0004)

• SK_LLCREDSTATE_TLV (0x0005)

• SK_LLCREDSETTINGS_TLV (0x0006)

SK_LLCREDTYPE_TLV (0x0004)

Description

Byte (Value)

Tag

Data[0, 1] = 0x0004 (SK_LLCREDTYPE_TLV)

Length

Data[2, 3] = 0x0001

Value

Data[4] = Type

0x01 - LLC was started as primary
0x02 - LLC was started as redundant (with -r)

SK_LLCREDSTATE_TLV (0x0005)

Description

Byte (Value)

Tag

Data[0, 1] = 0x0005 (SK_LLCREDSTATE_TLV)

Length

Data[2, 3] = 0x0002

Value

Data[4] = LLC state

0x00 - Transient or Unknown
0x01 - Active
0x02 - Standby

Data [5] = LLC to LLC Redundant Link State

0x06 - RLink Up (PLLC to RLLC communication possible)
0x07 - Rlink Down (PLLC to RLLC communication not possible)

SK_LLCREDSETTINGS_TLV (0x06)

Description

Byte (Value)

Tag

Data[0, 1] = 0x0006 (SK_LLCREDSETTINGS_TLV)

Length

Data[2, 3] = 0x0012

Value

IP Address of the Host this message came from (presumably the Active LLC)
Data [4] = First octet of Host IP address
Data [5] = Second octet of Host IP address
Data [6] = Third octet of Host IP address
Data [7] = Fourth octet of Host IP address

IP of the Primary LLC's listening socket
Data [8] = First octet of PLLC IP address
Data [9] = Second octet of PLLC Host IP address
Data [10] = Third octet of PLLC Host IP address
Data [11] = Fourth octet of PLLC IP address

Listening Port of the Primary LLC
Data [12, 13] = PLLC Port

IP of the Redundant LLC's listening socket
Data [14] = First octet of RLLC IP address
Data [15] = Second octet of RLLC Host IP address
Data [16] = Third octet of RLLC Host IP address
Data [17] = Fourth octet of RLLC IP address

Listening Port of the Redundant LLC
Data [18, 19] = RLLC

PortSwitchback mode as defined by Primary Host
Data [20] = mode
0x00 - Primary LLC preferred
0x01 - Manual

Report Types

The TLVs in this section are used to report the status of the LLC socket connections.

• SK_PM_CHANGE

• SK_SSC_UPDATE

• SK_LINK_UP

• SK_LINK_DOWN

These report types are unsolicited messages that report the status of socket connections between the LLC and its devices, in particular, devices that share a logical node but are on unique logical links (i.e. direct connections to the SS7 for TCAP).

The following list describes the conditions that will cause the LLC to send these reports within the GenericLLCReport:

• SK_PM_CHANGE

Sent when the first poll is received by the LLC for a Matrix Controller. Also sent any time a value changes in the Poll. The UpdatedFieldBits field indicates which fields have changed since the last poll.

• SK_SSC_UPDATE

Sent when an application issues an AddLLCCard. An SSC_UPDATE may be generated if the LLC already knew about the device and the LLC is currently connected to the active device within that node. In other words, if the Link is considered to be up.

• SK_LINK_UP

Sent to indicate that there is a connection to the active device for this node and the device is ready to be configured. This will be sent if this is a new condition (i.e. the LLC was not previously connected to the active Device).

• SK_LINK_DOWN

Sent to indicate that there is NO connection to the active Device for a node. This will be sent if this is a new condition (that is, we were previously connected to the active Device).

Important! Performing an AddLLCCard will result in an SK_SSC_UPDATE with the last poll from the active Device, if the LLC is currently connected to the Device in the active state.

SK_POLL_DATA_TLV (0x1000)

Description

Byte (Value)

Tag

Data[0, 1] = 0x1000 (SK_POLL_DATA_TLV)

Length

Data[2, 3] = 0x000b

Value

Data[4] = StatusData
Data[5,6] = SystemType
Data[7] = MatrixSide
Data[8] = MatrixState
Data[9] = AdjMatrixState
Data[10] = StatusBits
Data[11,12] = Actual Logical Node ID
Data[13, 14] = UpdatedFieldBits

SK_IPV4_TLV (0x1001)

Description

Byte (Value)

Tag

Data[0, 1] = 0x1001 (SK_IPV4_TLV)

Length

Data[2, 3] = 0x0004

Value

Data[4] = First octet of IP address (hexadecimal)
Data[5] = Second octet of IP address (hexadecimal)
Data[6] = Third octet of IP address (hexadecimal)
Data[7] = Fourth octet of IP address (hexadecimal)

SK_ROUTING_TLV (0x1002)

Description

Byte (Value)

Tag

Data[0, 1] = 0x1002 (SK_ROUTING_TLV)

Length

Data[2, 3] = 0x0004

Value

Data[4,5,6,7] = Routing ID

SK_LNI_TLV (0x1003)

Description

Byte (Value)

Tag

Data[0, 1] = 0x1003 (SK_LNI_TLV)

Length

Data[2, 3] = 0x0002

Value

Data[4,5] = Requested Logical Node ID

 

Report Types

The TLVs in this section are used to report the service state of channel groups being watched by an application.

• SK_GROUP_WATCHER_STATUS

• SK_CHANNEL_RANGE_STATUS

Report Type

SK_CHANNEL_GROUP_TLV

SK_CHANNEL_RANGE_TLV

SK_GROUP_WATCHER_
STATUS

1

 

SK_CHANNEL_RANGE_STATUS

 

1

SK_CHANNEL_GROUP_TLV (0x1004)

In the event that the environment variable SK_CHANNEL_RECOVERY_METHOD=0x03 (All_OUT_OF_SERVICE) is set or a ForceGroupState message is received, the LLC has the ability to take entire groups of channels in-service and out-of-service. In the event that this occurs a "master" application can be created that monitors this behavior by registering for GenericLLCReports and parsing a new report type within it called SK_GROUP_WATCHER_STATUS.

Description

Byte (Value)

Tag

Data[0, 1] = 0x1004 (SK_CHANNEL_GROUP_TLV)

Length

Data[2, 3] = 0x0034

Value

Data[4] = Status

0x00 Not Watched
0x01 Watched

Data[5] Reserved (Not Used)

Data [6,56] = Group (null terminated string)

SK_CHANNEL_RANGE_TLV (0x1005)

In the event that the environment variable SK_CHANNEL_RECOVERY_METHOD=0x03 (All_OUT_OF_SERVICE) is set or a ForceGroupState message is received, the LLC has the ability to take entire groups of channels in-service and out-of-service. In the event that this occurs a "master" application can be created that monitors this behavior by registering for GenericLLCReports and parsing a new report type within it called SK_CHANNEL_RANGE_STATUS.

Description

Byte (Value)

Tag

Data[0, 1] = 0x1005 (SK_CHANNEL_RANGE_TLV)

Length

Data[2, 3] = 0x0009

Value

Data[4,5] = Start Span
Data[6] =Start Channel
Data[7,8] = End Span
Data[9] = End Channel
Data[10] = Status

0xF0 SK_IN_SERVICE
0x0F SK_OUT_OF_SERVICE

Data[11,12] = Reserved (Not Used)

Possible TLV Combinations

Report Type

SK_LNI_TLV

SK_POLL_DATA_TLV

SK_IPV4_TLV

SK_PM_CHANGE

1

1

1

SK_SSC_UPDATE

1

1

1

SK_LINK_UP

1

0

*

SK_LINK_DOWN

1

0

**

* A Report Type will contain at least one of these TLVs. The matrix controller represented by the first TLV in a series will always indicate the current Active.

** A Report Type will contain at least one of these TLVs. When a series of TLVs is sent by the LLC, the order of the TLVs is irrelevant. When the link is down the LLC does not know which is Active or not.