You are here: CSP API Reference > 1 EXS & SwitchKit API Messages > 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 |
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 Data [5] = LLC to LLC Redundant Link State 0x06 - RLink Up (PLLC to RLLC communication 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) IP of the Primary LLC's listening socket Listening Port of the Primary LLC IP of the Redundant LLC's listening socket Listening Port of the Redundant LLC PortSwitchback mode as defined by Primary Host |
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 |
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) |
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_ |
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 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 0xF0 SK_IN_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.