0% found this document useful (0 votes)
12 views

DSC Server Lookup Function

Uploaded by

Elton t0nx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

DSC Server Lookup Function

Uploaded by

Elton t0nx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 14

DSC - Server Lookup Function

- Subscriber Lookup Function


- SLF
SISUM, Lausanne
08.09.2016
Concept 2

1. SLF enables the DSC to route Diameter traffic on a per subscriber basis.
2. The subscriber identity is extracted from an AVP in the Request message and looked
up in a database.
3. The outcome of the lookup determines the destination of the message (routing).

• The provisioning of the subscriber data (identities and destinations) into the internal
database is possible:
– through an O&M interface, based on the CAI3G protocol (Ericsson EMA).
– Manually with a Linux command in the DSC
How to use the SLF 3

• There are 2 steps


1. Provisioning the database with the subscribers identities (IMSI or MSISDN, …)
2. Configuring the SLF into the "cliss" application.
Provisioning the database 4

• Add an IMSI in the SLF Database


• Add IMSI 228019991111111 with destination slf_mhss89
echo "add | imsi | 228019991111111 | slf_mhss89" | dsc-admin-slf-db

• Add and print all the records


echo "add | imsi | 228019991111111 | slf_mhss89" | dsc-admin-slf-db -p "all age >= 0"

• Note: the destination is not the name of a peer! It's a "SLF destination". We can create
such a destination during the configuration of the SLF.

• The type can be :


• imsi
• msisdn
• private-id
• public-id
Provisioning the database 5

• Delete an IMSI in the SLF Database


• Delete IMSI 228019991111111 with destination slf_mhss89
echo "rem | imsi | 228019991111111 | slf_mhss89" | dsc-admin-slf-db

• Delete and print all the records


echo "rem | imsi | 228019991111111 | slf_mhss89" | dsc-admin-slf-db -p "all age >= 0"

• The type can be :


• imsi
• msisdn
• private-id
• public-id

• Print all the records of the SLF of type "imsi" only

dsc-admin-slf-db -p imsi
Configuring the SLF 6

• Configuring the SLF – create Destination and LookupProfile


• Before configuring a Lookup Profile, all Destinations, Peers, and Peer Groups used for the
configuration of LookupProfiles must be configured.

• Then the selector and the type of the identity must be defined. Here msg-user-name is the
name of the field which contains an IMSI into a Diameter request.
• identityType possible: IMSI, MSISDN, PRIVATE_ID, PUBLIC_ID

DscSlf=1
Destination=slf_mhss89
actionPeer="mhss89"
Destination=slf_mdsc81
actionPeer="mdsc81"
LookupProfile=LookupProfileIMSI
identityType = IMSI
selector ="msg.user-name"
destDestinationUnknown ="slf_mdsc81"
destIdentityMissing ="slf_mdsc81" Optional.
destLookupFailure ="slf_mdsc81" See description in next slide
destSubscriberNotFound ="slf_mdsc81"
Configuring the SLF 7

• Optionnal parameters

• destSubscriberNotFound
Default Destination for the case that no Destination could be found in the SLF Database for the
Subscriber Identity

• destIdentityMissing
Default Destination for the case the subscriber-identity could not be found in a Diameter request
message

• destDestinationUnknown
Default Destination for the case that the Destination found in the SLF Database is unknown

• destLookupFailure
Default Destination for the case that the access to the SLF Database failed
Configuring the SLF 8

• Create a rule in order to call the LookupProfile


DscRule=00010
actionLookup="LookupProfileIMSI"

• Be careful !! With this rule, every messages from different applications (S6a, Cx, ...) will be
routed according the LookupProfileIMSI. There is be is be an incompatibility with the
selector because each application uses a different format. For example:
• S6a is user-name = <IMSI>
• Cx is user-name = <IMSI>@ims.mnc001.mcc228.3gppnetwork.org
or public-identity = sip:<imsi>@ims.mnc001.mcc228.3gppnetwork.org
• Gx is Subscription-Id = <IMSI>
• etc.

• We should add an expression in the rule to filter only the respective application (S6a,
…) we want.

DscRule=00010
requestExpression="msg.appId = S6a
actionLookup="LookupProfileIMSI"
Subscriber is in SLF 9

• The followings slides will presents some examples of configurations and their
results.

1. Subscriber is in SLF (S6a application)


Subscriber is not in SLF, destSubscriberNotFound configured

2. Subscriber is in SLF (Cx application)


Subscriber is not in SLF, destSubscriberNotFound configured

3. Subscriber is in SLF (S6a application)


Subscriber is not in SLF, destSubscriberNotFound not configured

4. destIdentityMissing configured
The subscriber-identity could not be found in a Diameter request message
(it doesn't matter if the subscriber is in SLF or not)
Subscriber is in SLF (S6a application)
Subscriber is no in SLF, destSubscriberNotFound configured 10

Definition
Check that we can route S6a messages to different HSS.
Spectra test aa_314_SLF_S6a_ULR_AIR
Send S6a ULR and AIR

Result expected
IMSI 228019991111111 In the SLF routed to mhss89
IMSI 228019999999999 not in the SLF routed to mdsc81

Configuration
#To add an IMSI in the SLF Database
echo "add | imsi | 228019991111111 | slf_mhss89" | dsc-admin-slf-db -p "imsi age >= 0"

#In DscNode=mdsc85
DscSlf=1
Destination=slf_mhss89
actionPeer ="mhss89"
Destination=slf_mdsc81
actionPeer ="mdsc81"
LookupProfile=LookupProfileIMSI
identityType=IMSI
selector ="msg.user-name"
destDestinationUnknown ="slf_mdsc81"

DscRule=00010
actionLookup="LookupProfileIMSI"
Subscriber is in SLF (Cx application)
Subscriber is no in SLF, destSubscriberNotFound configured 11

Definition
Check that we can route Cx messages to different HSS.
Spectra test aa_315_SLF_Cx_UAR
Send Cx UAR

Result expected
IMPU sip:[email protected] In the SLF routed to mhss89
IMPU sip:[email protected] not in the SLF routed to mdsc81

Configuration
#To add an IMPU in the SLF Database
echo "add | public-id | sip:[email protected] | slf_mhss89" | dsc-admin-slf-db

#In DscNode=mdsc85
DscSlf=1
Destination=slf_mhss89
actionPeer ="mhss89"
Destination=slf_mdsc81
actionPeer ="mdsc81"
LookupProfile=LookupProfileIMPU
identityType=IMSI
selector ="msg.public-identity"
destDestinationUnknown ="slf_mdsc81"

DscRule=00010
actionLookup="LookupProfileIMPU"
Subscriber is in SLF (S6a application)
Subscriber is no in SLF, destSubscriberNotFound not configured 12

Definition
Define a scenario where the Subscriber Identity is not found in the SLF Database. Don't specify the default Destination
for this case (remove destSubscriberNotFound)
Spectra test aa_314_SLF_S6a_ULR_AIR
Send S6a ULR and AIR
Result expected
IMSI 228019991111111 In the SLF routed to mhss89
IIMSI 228019999999999 not in the SLF DSC answers DIAMETER_ERROR_USER_UNKNOWN

Configuration
#To add an IMSI in the SLF Database
echo "add | imsi | 228019991111111 | slf_mhss89" | dsc-admin-slf-db -p "imsi age >= 0"

#In DscNode=mdsc85
DscSlf=1
Destination=slf_mhss89
actionPeer ="mhss89"
Destination=slf_mdsc81
actionPeer ="mdsc81"
LookupProfile=LookupProfileIMSI
identityType=IMSI
selector ="msg.user-name"
destDestinationUnknown ="slf_mdsc81"

DscRule=00010
actionLookup="LookupProfileIMSI"
destIdentityMissing configured
subscriber-identity not found in request message 13

Definition
Define a scenario where the subscriber-identity could not be found in a Diameter request message. Specify the default
Destination for this case (add destIdentityMissing)
Spectra test aa_315_SLF_Cx_UAR
Send Cx UAR instead of S6a ULR/AIR

Result expected
All Cx requests are routed to mdsc81
PS: if you repeat the same test without defining "destIdentityMissing", DSC will reply 5005 DIAMETER_MISSING_AVP

Configuration
#No need to add an identity in the SLF for this test.

#In DscNode=mdsc85
DscSlf=1
LookupProfile=LookupProfileIMSI
identityType=IMSI
selector ="msg.user-name"
destIdentityMissing ="slf_mdsc81"

DscRule=00010
actionLookup="LookupProfileIMSI"
Notes 14

• In the previous examples, the SLF was invoked in the rules like this.
DscRule=00010
actionLookup="LookupProfileIMSI"

• Be careful !! With this rule, every messages from different applications (S6a, Cx, ...) will be
routed according the LookupProfileIMSI. There is be is be an incompatibility with the
selector because each application uses a different format. For example:
• S6a is user-name = <IMSI>
• Cx is user-name = <IMSI>@ims.mnc001.mcc228.3gppnetwork.org
or public-identity = sip:<imsi>@ims.mnc001.mcc228.3gppnetwork.org
• Gx is Subscription-Id = <IMSI>
• etc.

• We should add an expression in the rule to filter only the respective application (S6a,
…) we want.

DscRule=00010
requestExpression="msg.appId = S6a
actionLookup="LookupProfileIMSI"

You might also like