eMPS/WPS Support

Feature Summary and Revision History

Summary Data

Table 1. Summary Data

Applicable Product(s) or Functional Area

cnSGW-C

Applicable Platform(s)

SMI

Feature Default Setting

Disabled – Configuration required to enable

Related Documentation

Not Applicable

Revision History

Table 2. Revision History

Revision Details

Release

The following Wireless Priority Service enhancements are added:

  • Message Priority Profile support introduced.

  • WPS session monitoring is performed using a sub-type label in the show sub CLI.

2023.04.0

First introduced.

2021.02.0

Feature Description

This feature supports the following:

  • Enhanced Multimedia Priority Service (eMPS) or Wireless Priority Service (WPS)

  • eMPS GTPv2 Load/Overload Self Protection Exclusion

  • Message Priority Profiles to define priority either at global level or at each interface level (PFCP, GTP).

eMPS/WPS Support

Feature Description

This feature supports identifying the eMPS subscriber. The feature sets the message priority bit for:

  • PFCP interface towards the UP.
  • GTPC interface towards the MME and PGW.

This feature includes DSCP marking for request messages in control messages as per the configured value in the profile for eMPS subscriber.

eMPS GTPv2 Load/Overload Self Protection Exclusion Support

Feature Description

cnSGW-C supports interaction of eMPS with GTPv2 load or overload feature. It supports excluding eARPs /APNs/Emergency call during self-protection mode in GTPv2 load or overload feature.

cnSGW-C can exclude the dnn-list, arp-list, and qci-list from the rejection for incoming request messages in self-protection mode. cnSGW-C excludes this rejection in the following manner:

  • Excludes the dnn-list from rejection for any call level procedure when subscriber APN name (NI+OI) matches with overload-exclude-profile

  • Excludes bearer modification or creation from rejection for any new or existing ARP (Priority-Level) value

  • Excludes bearer modification or creation from rejection for any new or existing QCI value.

  • Excludes the delete bearer or the session operations, such as Delete Bearer Request, Delete Session Request, Delete Bearer command from rejection irrespective of the overload-exclude-profile configuration


Note


cnSGW-C does not support message throttling.


Message Priority Profile Support

Table 3. Feature History

Feature Name

Release Information

Description

Support for Message Priority profiles

2023.04

This feature allows the cnSGW service to:

  • Send the Inter-process Communication (IPC) message to the protocol pod for Wireleass Priority Service (WPS) session using Priority IPC Stream.

  • Create the message-priority profile to define priorities either at global level or at each interface level (PFCP, GTP)

Default Setting: Disabled – Configuration required to enable

Feature Description

Priorities determine the order in which service requests are dequeued by a server. For example, the priority that client assigns to individual services can range from 0 to 15, where 0 represents the highest priority.

In cnSGW, the cnSGW service sends the Inter-process Communication (IPC) message to the protocol pod for Wireleass Priority Service (WPS) session using Priority IPC Stream.

cnSGW creates the message-priority profile to define priorities either at global level or at each interface level (PFCP, GTP). You can select the Message Priority value based on:

  • ARP and QCI received in Bearer context in the Create Session Request (CSR), Create Bearer Response (CBR), and Create Session Response.

  • Update Message priority value based on ARP and QCI received in Bearer context in the Update Bearer Request (UBR).

cnSGW supports the following functionalities:

  • WPS sessions per Roaming partner.

  • Exclusion of WPS sessions from overload throttling.

  • Session type conflict resolution at cnSGW.

  • WPS sessions handing at UPF over Sxa Interface for collocated subscriber.

  • WPS session monitoring.

Operators can monitor the S-GW service statistics for WPS users and users can also monitor number of active WPS sessions.

How it Works

The Message Priority (MP) mechanism functions are:

  • MP (gtp, pfcp) is copied to transactions created for handling an incoming message and the same is copied to child transactions. These priority values are also copied into IPC metadata to send it across to destination pods.

  • Protocol pods (protocol, gtp) detect the incoming messages as WPS messages based on the message priority available in the incoming message. These message protocol pods use priority IPC streams toward a service pod.

Message Priority Profile Selection Logic

The following conditions apply for Message Priority Profiles selection:

  • Subscriber-policy must define group of subscriber and associated Operator policy.

  • Operator policy must define the associated DNN policy.

  • DNN policy must define a list of DNN and the associated DNN profile.

  • DNN profile must have an associated QoS profile name and WPS Profile name.

  • QoS Profile must have an associated message-priority-profile.

  • If the message-priority-profile is configured in WPS Profile and in S-GW QoS Profile for DNN, then the message-priority-profile configured in WPS profile takes priority.

  • If any message priority configuration is changed at run time, it is applicable for the new calls. For existing calls, new configuration is applicable when the Bearer is updated or a new Bearer is added.

  • The existing Message Priority gets displayed in outbound messages that are selftriggered, for example, DDN.

  • If an incoming PDN level GTP message such as CSReq, MBReq, DSReq, CBReq, DBReq, UBReq is received with valid message priority and if copy-incoming is set to true for any of the Bearers in that PDN, then the received messages priority gets copied in all the outgoing GTP/PFCP messages that are triggered by that incoming message.

  • If an incoming UE level GTP message such as HO DSReq, RAB is received with valid message priority and copy-incoming is set to true for any of the bearers in the PDN, then the received message priority will be copied in all outgoing GTP/PFCP messages(for that PDN) triggered by that incoming message.

  • If an incoming PFCP message such as Session report is received with valid messages priority and copy-incoming is set to true for any of the Sx bearer in that Sx session, then received messages priority gets copied in outgoing response messages.

  • Messages priority value is displayed in outgoing messages based on the following logic:

    • For GTP Messages:

      • For PDN level messages: If a PDN have multiple bearers which are marked as WPS (having different GTP message priorities), in that case highest messages priority (0 is highest and 15 is lowest) will be copied into outgoing GTP messages.

      • For UE level GTP messages: If UE have multiple bearers which are marked as WPS (having different GTP message priorities), in that case the highest messages priority(0 is highest and 15 is lowest) will be copied into outgoing GTP messages.

    • For PFCP Messages, if a Sx session has multiple bearers, which are marked as WPS (having different PFCP message priorities), in that case the highest messages priority (0 is highest and 15 is lowest) gets copied into outgoing PFCP messages.

Session Type Conflict Resolution at cnSGW

cnSGW resolves a session type conflicts by tagging:

  • A session as emergency, if the DNN is tagged to emergency or if the session created is an emergency session. For emergency session, cnSGW uses the QCI/ARP received in the CS request to select a Message Priority.

  • A session as IMS/VOLTE, when a bearer gets created with the QCI configured as IMS/VOLTE under DNN profile.

  • A session as WPS based on QCI/ARP received.

  • If a session satisfies multiple condition, session type is tagged based on the following criteria:

    WPS > Emergency > IMS

Handling of WPS Session at UPF over Sxa Interface

CnSGW handles WPS sessions at UPF over the Sxa Interface in the following ways:

  • Selects the message priority that is defined for the PFCP interface under the message-priority profile. For example, Priority value 0 is considered as the highest priority and 15 is considered as the lowest priority.

  • This priority gets passed to the UPF in the PFCP header.

  • UPF uses this priority during session recovery for early recovery of WPS sessions.


    Note


    For collocated subscribers UPF expects that cnSGW and SMF selects the same message priority for recovering these sessions at the same time.
    • If there are multipdn calls, where one of the PDN is WPS and the other PDN is non-WPS, then cnSGW selects WPS Priority for WPS PDN only.

    • If there are collocated calls, cnSGW selects WPS priority and SMF selects non-WPS priority for a session. In such cases UPF uses the highest priority for collocated session recovery. This way UPF makes sure that both sessions are recovered at the same time.

WPS Session Monitoring

Use the S-GW Service Statistcs to monitor if the session is WPS. You can tag a session using the session-type values such as “emergency”, “IMS/VOLTE” or “wps”. When WPS bearer is deleted, the WPS tagging is removed and session changes from normal to wps and vice-versa while its active. A new non unique key is added to the session when the session is converted to WPS and the same is removed when it converted back to non-WPS. This is used for show subscriber wps and clear subscriber wps. cnSGWc supports the show subscriber count wps. For more information, refer to the Monitoring and Troubleshooting section.

Feature Configuration

Configuring this feature involves the following steps:

Configuring WPS Profile

To configure this feature, use the following configuration:

config 
   profile wps wps_name 
      arp arp_value message-priority-profile msg_priority_profile_name 
      dscp dscp_value 
      message-priority [ pfcp | gtpc ]  
      end 

NOTES:

  • wps wps_name —Specify the WPS service name. Must be a string.

  • arp arp_value —Specify the range of ARP levels (separated by , or -). Must be an integer or a string. WPS session is decided based on ARP.

  • message-priority-profile msg_priority_profile_name — Specifies that a message-priority profile is added in ARP list within WPS profile. WPS session is decided based on the configured ARP and the associated message priority profile inside the WPS profile.

  • dscp dscp_value —Specify the DSCP marking value in the decimal range 0-63 or hex range 0x0-0x3F. Must be a string.

Configuration Example

The following is an example configuration.


config
   profile wps wp1
     arp 2 message-priority-profile message_priority_name
   end

Configuration Verification

To verify the configuration:

show full-configuration profile wps wps1
profile wps wps1
arp 2 message-priority-profile mp1
exit

Configuring Message Priority Profiles

To configure the message priority profile, use the following configuraton.

config 
   profile  message-priority msg_priority_profile_name 
      interface [ any | gtp | pfcp | sbi ] priority [ value range_value | copy-incoming ]priority copy_incoming_value 
   end 

NOTES:

  • profile message-priority-profilemsg_priority_profile_name —Specify a message priority profile and a profile name.

  • interface [ any | gtp | pfcp | sbi ] —Specify one of the following interface:

    • any

    • gtp

    • pfcp

    • sbi

  • Interface gtp priority [ value range_value —Specify the priority value.

    • The Range values from 0 to 31 is for sbi interface and 0 to 15 is for other interfaces.

    • If Priority values ranges are from 0 to 15, then 0 indicates the highest priority, while 15 indicates the lowest priority.

    • Priority value can be configured per interface. Interface type is also optional and if not configured, same value is applied across all interfaces.

  • Interface gtp priority [ value range_value | copy-incoming ]priority_copy_incoming_value — If copy-incoming is configured, cnSGW copies the priority received in incoming message to all outgoing messages triggered by that inbound message.

Configuration Verification

To verify the configuration:

show full-configuration profile message-priority mp1
profile message-priority mp1
interface gtp priority value 2
interface gtp priority copy-incoming
exit

Configuring WPS-Profile and SGW-Profile Association

To configure WPS-Profile and SGW-Profile association, use the following configuration:

config 
 profile sgw sgw_name 
  wps-profile wps_name 
  end 

NOTES:

  • wps-profile wps_name —Specify the Wireless Priority Service (WPS) name. Must be a string.

Configuration Example

The following is an example configuration.

config
   profile sgw sgw1
     wps-profile wp1
     end

Configuration Verification

To verify the configuration:

show running-config profile sgw
profile sgw sgw1
wps-profile wp1

Configuring WPS-Profile and DNN-Profile Association

This section describes how to configure WPS-Profile and DNN-Profile association.


Note


If WPS profile is associated with SGW profile and DNN profile, DNN profile takes the priority.


To configure WPS-Profile and DNN-Profile association, use the following configuration:

config 
 profile dnn dnn_name 
   wps-profile wps_name 
   end 

Configuration Example

The following is an example configuration.

 config
   profile dnn dnn1
   wps-profile wps1
   end

Configuration Verification

To verify the configuration:

show running-config profile dnn 
profile dnn dnn1
wps-profile wps1

Configuring SGW QoS Profile

You can associate a message priority profile to SGW QoS profile and to{qci,arp}in the SGW QoS profile. Message priority profile that is associated to {qci,arp} and the one associated to qos profile, and message priority profile associated to WPS are negotiated to find the one which has the better priority.

config 
   profile sgw-qos-profile  qos_profile_name 
      message-priority-profile message_priority_profile_name  
      qos qci nonstandard_value arp-priority-level arp_value [ message-priority-profile msg_priority_profile ] 
  exit  

NOTES:

  • message-priorty-profile message_priority_profile_name : Configures message priority profile name

  • qos qci standard_value arp-priority-level arp_value : Configures QoS parameters for QCI/ARP values. Must be an integer in the range of 1-254. For example, the range values can be 1-9,65,66,69,70,80,82,83,128-254.

  • arp-priority-level arp_value [ message-priority-profile msg_priority_profile ] : Configures the ARP Priority Level from 1 to 15.

Configuration Example

The following is an example configuration.


config
    profile sgw-qos-profile sgw1
      message-priority-profile mp1  
      qos qci 2 arp-priority-level 2 message-priority-profile mp1

Verification Configuration

To verify the configuration.

smf(config)# show full-configuration profile sgw-qos-profile sgw1
profile sgw-qos-profile sgw1
message-priority-profile mp1
qos qci 2 arp-priority-level 2 message-priority-profile mp1
exit

Associating sgw-qos-profile with sgw-profile and DNN profile

Use the following sample configuration to associate the WPS profile with the configured DNN profile.

config 
   profile dnn profile_dnn_name 
      wps-profile wps_profile_name  
      qci-qos-profile   sgw_qos  
      end 

NOTES:

  • wps-profile wps_profile_name : Enables the wps profile configuration. This profile is configured under the existing DNN profile configuration.

  • qci-qos-profile qos_profile_name : Specify the QoS profile configuration name for S-GW.

Use the following sample configuration to associate the sgw-qos-profile with the configured sgw profile.

config 
   profile sgw sgw_name 
   qci-qos-profile   sgw_qos  
   end 

NOTES:

  • qci-qos-profile qos_profile_name : Specify the QoS profile configuration name for S-GW.

Feature Configuration

Configuring this feature involves the following steps:

Configuring Overload Exclude Profile

To configure the Overload Exclude profile, use the following configuration:

config 
   profile overload-exclude overload_exclude_profile_name 
      dnn-list list_of_dnn  
      arp-list list_of_arp 
      qci-list list_of_qci 
      end 

NOTES:

  • overload-exclude overload_exclude_profile_name — Specify the exclude overload profile name.

  • dnn-list list_of_dnn —Specify the list of DNNs that needs to be excluded from throttling decision. Maximum three entries are allowed.

  • arp-list list_of_arp —Specify the ARP list that needs to be excluded from throttling decisions. Must be an integer in the range of 1-15. Maximum eight entries are allowed.

  • qci-list list_of_qci —Specify the QoS Class Identifier to be excluded from throttling decisions. Must be an integer in the range of 1-.254. Maximum 8 entries are allowed. For example, range values can be 1-9,65,66,69,70,80,82,83,128-254.

Configuration Example

The following is an example configuration.

config
   profile overload-exclude oe1
     dnn-list  starent.com
     arp-list  1        
     qci-list  1
     end
Configuration Verification

To verify the configuration:

show running-config profile overload-exclude
profile overload-exclude oe1
dnn-list  starent.com 
arp-list  1 2 
qci-list 3 4 5 6 
end

Associating the Overload-Profile with SGW-Profile Association

The association of the Overload-Profile and the SGW-Profile, can be configured.

To configure this feature use the following configuration:

config 
    profile overload overload_profile_name 
        overload-exclude-profile self-protection self_protection_profile_name 
    node-level 
        tolerance 
            minimum min_percentage 
            maximum max_percentage 
        reduction-metric 
            minimum min_percentage 
            maximum max_percentage 
            advertise 
            interval interval_value 
            change-factor 
            exit 
        interface gtpc 
            overloaded-action [ advertise ] 
            exit 
        exit 
    exit 
    profile load load_name 
    load-calc-frequency load_calc_frequency_value 
    load-fetch-frequency load_fetch_frequency_value 
    advertise 
    interval interval_value 
    change-factor change_factor_value 
    profile overload-exclude overload_excude_profile_name   
        arp-list list_name_arp 
        dnn-list list_name_dnn 
        message-priority message_priority 
        procedure-list message_priority 
        qci-list list_name_qci 
        qi5-list list_name_qi5 
    exit 
    interface gtpc 
    action advertise 
    exit 
exit 
profile sgw sgw_name 
load-profile profile_name 
overload-profile overload_profile_name 
end 

NOTES:

  • overload overload_name —Specify the overload protection profile name. Must be a string.

  • overload-exclude-profile —Excludes profiles for overload scenarios.

  • self-protection overload_value —Specify the profile to be excluded for self-protection. Must be a string.

  • tolerance minimum min_percentage —Specify the minimum tolerance level below which the system is in a normal state. Must be an integer in the range of 1-100. The default value is 80.

  • tolerance maximum max_percentage —Specify the maximum tolerance level above which the system is in a self-protection state. Must be an integer in the range of 1-100. The default value is 95.

  • reduction-metric minimum min_percentage —Specify the percentage of reduction along with minimum tolerance-level for configuration. Must be an integer in the range of 1-100. The default value is 10.

  • reduction-metric maximum max_percentage —Specify the percentage of reduction along with maximum tolerance-level for configuration. Must be an integer in the range of 1-100. The default value is 100.

  • interval interval_value —Specify the advertising interval in seconds. Must be an integer in the range of 0-3600. The default value is 300 seconds.

  • validity validity_value —Specify the validity period of the advertised OCI value in seconds. Must be an integer in the range of 1-3600. The default value is 600 seconds.

  • change-factor change_factor_value —Specify the minimum change between current OCI and last indicated OCI, after which the advertising should happen. Must be an integer in the range of 1-20. The default value is five.

  • profile load load_name —Specify the name of the load profile. Must be a string.

  • load-calc-frequency load_calc_frequency_value —Specify the system load calculation interval in seconds. Must be an integer in the range of 5-3600. The default value is 10 seconds.

  • load-fetch-frequency load_fetch_frequency_value —Specify the time interval in seconds at which the service pods fetch load from the cache pod. Must be an integer in the range of 5-3600. The default value is 10 seconds.

  • load-profile profile_name —Specify the name of the load profile.

  • overload-profile overload_profile_name —Specify the name of the overload profile.

  • profile overload-exclude ovreload_exclude_profile_name : Specify the exclude overload profile name:

    • arp-list list_name_arp : Specify the ARP list that needs to be excluded from throttling decisions. Must be an integer in the range of 1-15. Maximum eight entries are allowed.

    • dnn-list list_name_dnn : Specify the list of DNNs that needs to be excluded from throttling decision. Maximum three entries are allowed.

    • message-priority : Specify upto which message periority to be excluded from throttling decisions.

    • procedure-list : Procedures to be excluded from throttling decisions. This parameter is applicable only for Self-Protection.

    • qci-list list_name_qci : Specify the QoS Class Identifier to be excluded from throttling decisions. Must be an integer in the range of 1-.254. Maximum 8 entries are allowed. For example, range values can be 1-9,65,66,69,70,80,82,83,128-254.

Configuration Example

The following is an example configuration.

config
profile overload op
overload-exclude-profile self-protection <overload-exclude-profile-name>
node-level
tolerance minimum 5
tolerance maximum 50
reduction-metric minimum 50
reduction-metric maximum 100
advertise
interval 0
change-factor 1
exit
interface gtpc
overloaded-action [ advertise ]
exit
exit
exit
profile load lp
load-calc-frequency 120
load-fetch-frequency 15
advertise
interval 0
change-factor 1
exit
interface gtpc
action advertise
exit
exit
profile sgw <sgw_name>
load-profile <profile_name>
overload-profile <overload_profile_name>
end
Configuration Verification

To verify the configuration:

show running-config profile
profile sgw sgw1
load lp1
overload op1
end

OAM Support

This section describes operations, administration, and maintenance information for this feature

Monitoring and Troubleshooting

This section provides information for WPS session monitoring. Use the following sub-type label in the following show sub CLIs to view details:

show subscriber namespace sgw sub-type subscriber type

show subscriber nf-service sgw sub-type wps gr-instance 1
Wed Aug  9  09:20:49.500 UTC+00:00
subscriber-details 
{
  "subResponses": [
    [
      "id-index:1:0:32768",
      "id-index-key:1:0:globalKey:32768",
      "id-value:16779392",
      "imsi:imsi-123456789012348",
      "msisdn:msisdn-223310101010101",
      "imei:imei-123456786666660",
      "upf:10.1.11.32",
      "upfEpKey:10.1.11.32:10.1.14.119",
      "subscribertype:wps",
      "s5s8Ipv4:10.1.14.19",
      "s11Ipv4:10.1.11.32",
      "namespace:sgw",
      "nf-service:sgw"
    ]
  ]
}

show subscriber namespace sgw count sub-type subscriber type

You can view count details for the specified subscriber type, SUPI values

[sgw] smf# show subscriber namespace sgw count su
Possible completions:
  sub-type
  supi
[sgw] smf# show subscriber nf-service sgw count sub-type wps 
Wed Aug  9  09:20:53.760 UTC+00:00
subscriber-details 
{
  "sessionCount": 1
}
 

clear subscriber namespace sgw sub-type subscriber type


[sgw] smf# clear subscriber namespace sgw sub-type ?
Description: Specify Subscriber Type [wps|emergency|volte|non-volte]
Possible completions:
  <string>
[sgw] smf# clear subscriber namespace sgw sub-type wps
Wed Jul  19 10:30:07.716 UTC+00:00
result
ClearSubscriber Request submitted

show sessions summary slice-name slice_name


[sgw] smf# cdl show sessions summary slice-name 1
Wed Aug  9  09:21:08.552 UTC+00:00
session {
    primary-key 2#/#imsi-123456789012348
    unique-keys [ "2#/#16779392" ]
    non-unique-keys [ "2#/#id-index:1:0:32768" "2#/#id-index-key:1:0:globalKey:32768" "2#/#id-value:16779392" "2#/#imsi:imsi-123456789012348" "2#/#msisdn:msisdn-223310101010101" "2#/#imei:imei-123456786666660" "2#/#upf:10.1.11.32" "2#/#upfEpKey:10.1.11.32:10.1.14.119" "2#/#subscribertype:wps" "2#/#s5s8Ipv4:10.1.14.19" "2#/#s11Ipv4:10.1.11.32" "2#/#namespace:sgw" ]
    flags [ flag3:a010b20:a010b20,a010b20:a010e13, byte-flag1:02:13:03:53:00:00:08:16:0A:01:0B:20:11:FF:01:5B:18:21:63:54:09:2A:21:63:54:00:12:D6:87:10:01:21:63:54:00:00:01:89:D9:99:3F:4E session-state-flag:sgw_active ]
    map-id 1
    instance-id 1
    version 1
    create-time 2023-08-09 09:20:46.302786264 +0000 UTC
    last-updated-time 2023-08-09 09:20:46.867525921 +0000 UTC
    purge-on-eval false
    next-eval-time 2023-08-16 09:20:46 +0000 UTC
    session-types [ SGW:rat_type:EUTRAN SGW:colocated:false SGW:pdn_active:1 SGW:bearer_active:1 SGW:subscriber_type:wps SGW:apn:intershat ]
    data-size 950
}

Bulk Statistics Support

The following are the examples for eMPS messages:

sgw_pdn_emps_counters{app_name="smf",cluster="cn",data_center="cn",instance_id="0",
service_name="sgw-service",status="active"} 1
sgw_pdn_emps_stats{app_name="smf",cluster="cn",data_center="cn",instance_id="0",
service_name="sgw-service",status="release"} 7
sgw_pdn_emps_stats{app_name="smf",cluster="cn",data_center="cn",instance_id="0",
service_name="sgw-service",status="setup"} 8
gtpc_app_priority_events{app_name="smf",cluster="smf",data_center="smf",event_type=
"NumRxModifyBearerResFrmSerSuccess",instance_id="0",
interface_type="S11",priority_msg="true",service_name="gtpc-ep"} 3
gtpc_app_priority_events{app_name="smf",cluster="smf",data_center="smf",event_type=
"RxCreateSessionRes",instance_id="0",interface_type="S5E",
priority_msg="true",service_name="gtpc-ep"} 2
proto_pfcp_msg_total{app_name="smf",cluster="smf",data_center="smf",instance_id="0",
interface_type="SXA",message_direction="outbound",
message_name="N4_MSG_SESSION_ESTABLISHMENT_REQUEST",msgpriority="True",service_name=
"protocol",status="accepted",transport_type="origin"} 2
proto_pfcp_msg_total{app_name="smf",cluster="smf",data_center="smf",instance_id="0",
interface_type="SXA",message_direction="outbound",
message_name="N4_MSG_SESSION_MODIFICATION_REQUEST",msgpriority="True",service_name="protocol",
status="accepted",transport_type="origin"} 6