Network Slicing Architecture

Network Slicing a 5G feature which primarily divides the network into multiple and separate logical instances end to end and these instances are called slices. each of this slice carries specific properties based on the service or the use case which is intended to serve at the highest quality.

Architecture and components involved in slicing:

 

NSSF: network slicing selection function is sued by the AMF to assist the selection of which network slices should serve the device. Also this component is key in selecting the appropriate AMF/AMF set used to serve the device.

NWDAF: Network Analytics function which can create analytics related to range of different use cases. some of these apply to slicing load level analytics statistical and historical basis.

NSACF: Network slicing Admission control function plays key role in monitoring the number of devices which are trying to register for each slice. in addition to it also monitors the number of PDU sessions active for each slice. in both cases NSACF make sure registrations/PDU sessions should not be exceeded.

NSSAAF: network slicing specific Authentication and Authorisation function which handles Authentication and Authorisation when device tries to access the network slice.

Device requests for slices for access during registration request through IEs like S-NSSAI(single network slice selection assistance information) which is combination of SST(slice service type) and SD(slice differentiator) and then network responds back by checking against the configured or allowed slices list in UDM in 5G registration accept. snippet for same where 3 slices are requested by the device and network agreed and allowed to register and indicated through accept.

registration_accept

    _5g_guti_inc = 1 (0x1)

    _5g_guti

      ident_type = 2 (0x2) (5G_GUTI)

    allowed_nssai_inc = 1 (0x1)

    allowed_nssai

      num_nssai = 3 (0x3)

      nssai[0]

        length = 4 (0x4)

        s_nssai_val[0] = 1 (0x1)

        s_nssai_val[1] = 0 (0x0)

        s_nssai_val[2] = 0 (0x0)

        s_nssai_val[3] = x (0x5)

      nssai[1]

        length = 4 (0x4)

        s_nssai_val[0] = 1 (0x1)

        s_nssai_val[1] = 0 (0x0)

        s_nssai_val[2] = 0 (0x0)

        s_nssai_val[3] = x (0x6)

      nssai[2]

        length = 4 (0x4)

        s_nssai_val[0] = 1 (0x1)

        s_nssai_val[1] = 0 (0x0)

        s_nssai_val[2] = 0 (0x0)

        s_nssai_val[3] = x (0x1)

    rejected_nssai_incl = 0 (0x0)

    config_nssai_incl = 1 (0x1)

    config_nssai

      num_nssai = 3 (0x3)

      nssai[0]

        length = 4 (0x4)

        s_nssai_val[0] = 1 (0x1)

        s_nssai_val[1] = 0 (0x0)

        s_nssai_val[2] = 0 (0x0)

        s_nssai_val[3] = x (0x5)

      nssai[1]

        length = 4 (0x4)

        s_nssai_val[0] = 1 (0x1)

        s_nssai_val[1] = 0 (0x0)

        s_nssai_val[2] = 0 (0x0)

        s_nssai_val[3] = x (0x6)

      nssai[2]

        length = 4 (0x4)

        s_nssai_val[0] = 1 (0x1)

        s_nssai_val[1] = 0 (0x0)

        s_nssai_val[2] = 0 (0x0)

        s_nssai_val[3] = x (0x1)

    nwk_feature_supp_inc = 1 (0x1)

 

Dinesh Vakada
Dinesh Vakada
https://wirelesstheory.com