-
Notifications
You must be signed in to change notification settings - Fork 12
Issue with SLS/SLC with ANSI type SS7 #1
Description
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.