eMPS and 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

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, or WPS calls during self-protection mode in GTPv2 load or overload feature.

By default, cnSGWc throttles the incoming GTPC messages in the self-protection mode. If cnSGWc is in self-protection mode and the overload exclude profile is configured, then the cnSGWc compares the parameters of the incoming message with the configured DNN, ARP, QCI, and message priority values.

In case of a match or the session is identified as a WPS or an emergency session, cnSGWc processes the incoming message, otherwise rejects it.

cnSGW-C can exclude the dnn-list, arp-list, and qci-list, message-priority 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 the 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 deleted 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.

To exclude the incoming GTPC traffic from a specific north-bound interface, see the Configure Overload Exclude Profile section.


Note


cnSGW-C does not support message throttling.


Message Priority Profile

Table 3. Feature History

Feature Name

Release Information

Description

Overload Optimization for GTPC Messages using Message Priority Negotiation

2024.04.1

In the overload state, cnSGWc ensures smooth communication by defining the message priority for incoming messages and negotiating the message priority value for outgoing messages.

This feature allows the network operator to exempt the incoming high priority messages from throttling by configuring the message priority under the overload exclude profile.

This feature also compares the message priority value of the incoming GTPC messages with the configured session message priority value and sets the lowest value in outgoing GTPC messages.

Commands Introduced: message-priority { any | s5e | s11 | sxa } upto message_priority

Default Setting: Disabled—Configuration required to enable

Support for Message Priority profiles

2023.04

This feature allows the cnSGWc service to:

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

  • Create the message-priority profile to define priorities either at the 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 Message Priority Profile Selection Works

Message Priority Functions

The Message Priority 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.

Conditions for Message Priority Profile Selection

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.

Message Priority Selection Logic
  • Messages priority value is displayed in outgoing messages based on the following logic:

    • 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.

    • 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.

Message Priority Negotiation for Outgoing GTPC Messages
For outgoing GTPC messages, cnSGWc compares the message priority values received in incoming GTPC messages with the message priority value determined based on configuration and chooses the lowest value. This message priority value is assigned to the outgoing GTPC request or response 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.

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