Skip to content

Issue with SLS/SLC with ANSI type SS7 #1

@hursjohn

Description

@hursjohn

libss7/mtp3.c

Line 1869 in 118eb9c

if (link->slc != rl.sls) {

Discovered this issue going from Libss7 1.0.2 to 2.0.0. ANSI/Bellcore doesn't change the SL Code (SLC) but the SL Selection (SLS) can change. ANSI/Bellcore uses a 8-bit SLS (256 values) to provide better load sharing across signaling links.

[https://www.ietf.org/mail-archive/web/sigtran/current/msg08652.html](See Here):

"ITU has a 4-bit SLS and a 4 bit SLC. The SLS and SLC is shared under
ITU and ITU does not do SLS rotation. Therefore, because 1 bit is used
for link-set selection, there can only be 8 links in a linkset (16 links
in a combined linkset).

ANSI has an 8-bit SLS and a 5-bit SLC. The SLS and SLC are not shared
and ANSI does SLS rotation. Therefore, it is possible to have 32 links
in a linkset (64 links in a combined linkset). Using the old 5-bit SLS
it was only possible to have 16 links in a linkset and 32 links in a
combined linkset because 1 of the 5 bits was used for linkset selection
within a combined linkset."

It appears that mtp3.c is treating ss7type ANSI like ITU-T implementations, where the SLS is interpreted as the SLC in MTP messages.

Removing lines 1869 - 1872 (file mtp3.c of 2.0 branch) and recompiling appears to resolve my issue in a ANSI environment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions