Patent Publication Number: US-2007121647-A1

Title: Method for processing create packet data protocal context request

Description:
FIELD OF THE TECHNOLOGY  
      The present invention relates to the Packet Data Protocol (PDP) context in Universal Mobile Telecommunications System (UMTS), and more particularly to a method for processing Create PDP Context Request.  
     BACKGROUND OF THE INVENTION  
      Universal Mobile Telecommunications System (UMTS) is a 3G mobile communications system based on the Wideband Code Division Multiple Access (WCDMA) air interface technology, and the UMTS is generally called the WCDMA communications system as well.  
      As shown in  FIG. 1 , which is a schematic diagram illustrating the architecture of UMTS, the system includes User Equipment (UE)  110 , UMTS Terrestrial Radio Access Network (UTRAN)  120  and Core Network (CN)  140 . The front-end of the UTRAN  120  connects with the UE  110  through a Uu interface, which is a wireless air interface, and the UTRAN  120  connects with the CN  140  via an Iu interface.  
      Here, the UE  110  consists of a Mobile Equipment (ME) and a SIM card (USIM), and the two constitute the UE  110  via a Cu electric interface.  
      The UTRAN  120  is used for handling all wireless-oriented functions and includes multiple base stations (Node B)  121  and multiple Radio Network Controllers (RNC)  122 , wherein the RNC  122  implements control and management of the base stations.  
      The CN  130 , which is logically divided into Circuit Switched Domain (CS) and Packet Switched Domain (PS), handles all the voice calls and data connections within the UMTS, and performs switching and routing with external networks. The CN  130  comprises: the Mobile Services Switching Center/Visitor Location Register (MSC/VLR)  131  for implementing such functions as control, management, authentication and encryption in CS domain; the MSC manager (GSMC)  132  responsible for connecting with other fixed or mobile networks; the Serving GPRS Support Node (SGSN)  134  which connects with the UTRAN  120  and the Gateway GPRS Supporting Node (GGSN)  135 ; and the GGSN  135  which is the interface for external IP packet network  140 . The external IP packet network  140  may comprise the PLMM, the PSTN, the ISDN, or the Internet.  
      The interface between the SGSN and the GGSN is based on GPRS Tunneling Protocol (GTP), which implements tunnel transmission function and includes the signaling plane GTP-C and the user plane GTP-U. The GTP-C implements tunnel management and transmission of other signaling messages, and the GTP-U transfers data packets of user plane. The 3GPP TS 09.60 and 3GPP TS 29.060 protocol specifications have defined the GTP, i.e. the protocol between the GPRS Support Nodes in the UMTS/GPRS backbone network, including GTP control plane protocol and data transmission protocol.  
      Protocols for transferring packet data in a discrete mode are generally called the Packet Data Protocol (PDP), for instance, IP protocol and X.25 protocol, which can be used for interworking between an external data network  140  and the CN  130 , as well as among the CN  130  networks. A PDP context is a set of messages stored in a Mobile Station (MS) and a GPRS Support Node (GSN) for a session.  
      In existing UMTS/GPRS networks, the GTP protocol used for transferring signaling or data between nodes of core network in the PS domain has two versions, referred to as GTPv0 and GTPv1, respectively. The functions of these two versions are the same except that GTPv1 is the optimized and updated version of GTPv0, and the corresponding specifications thereof are 3GPP TS 09.60 (GTPv0) and 3GPPTS 29.060 (GTPv1).  
      A process for activating a PDP context between the SGSN and the GGSN is described in both 3GPPTS 09.60 and 3GPPTS 29.060. As shown in  FIG. 2 , which is a flowchart illustrating the process for activating a PDP context in the prior art, the process includes following steps:  
      Step  201 : The MS (Mobile Station) sends an Activate PDP Context Request message to the SGSN;  
      Step  202 : The SGSN sends a Create PDP Context Request message to the GGSN;  
      Step  203 : The GGSN returns a Create PDP Context Response message to the SGSN;  
      Step  204 : If the QoS parameter requested by the SGSN can not be satisfied, the SGSN may modify the QoS attributes, and send an Update PDP Context Request message to the GGSN;  
      Step  205 : The GGSN returns an Update PDP Context Response message to the SGSN according to the actual situation;  
      Step  206 : If the returned result from the GGSN is success, then the SGSN returns an Activate PDP Context Accept message to the MS.  
      It should be noted that some processes, such as bearer establishment on the wireless side, are not included in the activating process of a PDP context shown in  FIG. 2  because they are not relevant to the present invention.  
      C 1  and C 2  shown in  FIG. 2  represent the possible triggering points of intelligent services, for example, the CAMEL related processes.  
      The messages set with dotted line in  FIG. 2 , i.e. Step  204  and Step  205 , indicate that they are optional and will be present only when certain requirement is met.  
      According to the specifications, when the SGSN sends a Create PDP Context Request message, the GGSN receiving this request message will return to the sender a Create PDP Context Response message after processing the message, where the most important information in the response message is the Information Element (IE) of Cause value, which indicates the result of processing after receiving the Create PDP Context Request message.  
      The Cause values that may be filled in the response message in version GTPv0 and version GTPv1 are not fully identical, which will be hereinafter described based on different versions, respectively.  
      In version GTPv0, the possible Cause values which can be filled in the response message include: 
          ‘Request Accepted’.     ‘No resources available’.     ‘Service not supported’.     ‘User authentication failed’.     ‘System failure’.     ‘Mandatory IE incorrect’.     ‘Mandatory IE missing’.     ‘Optional IE incorrect’.     ‘Invalid message format’.     ‘Version not supported’.        

      When the SGSN receives a Create PDP Context Response with the Cause value of ‘Request Accepted’, the SGSN activates the PDP context and starts to transfer data packets between the MS and the external packet data network.  
      Cause values other than ‘Request Accepted’ indicate that the PDP context has not been activated in the GGSN, and the specific reason can be obtained in the received Cause field.  
      Here, ‘No resources available’ refers to a temporary error, for example, all dynamic PDP addresses are occupied or no memory is available. In all the GGSNs which support GTPv0 version, ‘No resources available’ will be filled in the Cause field of a Create PDP Context Response message when all dynamic PDP addresses are occupied and when no memory space is available.  
      In GTPv1 version, the possible Cause values which can be filled in the response message include: 
          “Request Accepted”.     “Context not found”.     “No resources available”.     “All dynamic PDP addresses are occupied”.     “No memory is available”.     “Missing or unknown APN”.     “Unknown PDP address or PDP type”.     “User authentication failed”.     “System failure”.     “Semantic error in the TFT operation”.     “Syntactic error in the TFT operation”.     “Semantic errors in packet filter(s)”.     “Syntactic errors in packet filters(s)”.     “Mandatory IE incorrect”.     “Mandatory IE missing”.     “Optional IE incorrect”.     “Invalid message format”.     “PDP context without TFT already activated”.     “APN access denied—no subscription”.        

      When the SGSN receives a Create PDP Context Response with the Cause value of ‘Request Accepted’, the SGSN activates the PDP context and starts to transfer data packets between the MS and the external packet data network.  
      Cause values other than ‘Request Accepted’ indicate that the PDP context has not been activated in the GGSN, and the specific reason can be obtained from the received Cause value.  
      Here, the value “No resources available” is reserved for indicating a temporary error, for example, all dynamic PDP addresses are occupied or no memory is available. Besides, some new Cause values are added, including “Context not found”, “All dynamic PDP addresses are occupied”, “No memory is available”, “Missing or unknown APN”, and “Unknown PDP address or PDP type”.  
      From the above description on the GTP protocol used for processing the Create PDP Context Request, it can be seen that, based on the GTPv0 version, much optimization and improvement have been made in the GTPv1 version, including adding more options of Cause value inside the response message, therefore making it possible to feedback more accurate reasons of failure to the opposite terminal, and making it easier to localize and solve the problem causing the failure. However, in practical applications, it is not well considered how to make use of these newly added Cause values and how to make them compatible with GTPv0 version, and problems arise as follows:  
      1. The protocol is imperfect. There are two newly added Cause values, “All dynamic PDP addresses are occupied” and “No memory is available”, in the GTPv1 version, but these two values have not been used in any processing operation of the protocol;  
      2. Although two set values,  211  and  212 , have been assigned in GTPv1 version for indicating the errors of “All dynamic PDP addresses are occupied” and “No memory is available”, the value “No resources available” is still used as in the GTPv0 version. Although this makes the new version compatible with the GTPv0 version, it results in the waste of resources, for the two Cause values are not put into use though they are assigned values.  
      3. The existing method for processing Create PDP Context Request may easily lead to some problems in inter-working. In practical applications, each equipment provider has its own understanding of the protocols, and in case of an implementation of the GTPv1 version, it is in line with the specifications either to use the new Cause values “All dynamic PDP addresses are occupied” and “No memory is available” or to use the value “No resources available” as in the GTPv0 version. As the newly added Cause values can not be supported by GSN nodes which use the GTPv0 version, potential trouble of incompatibility exists.  
     SUMMARY OF THE INVENTION  
      In view of the above, the present invention is to provide a method for processing Create PDP Context Request so as to avoid the problems in the interaction of messages between different GTP versions and prevent the protocol resources from being wasted.  
      The technical scheme of the present invention is implemented as follows:  
      A method for processing Create Packet Data Protocol (PDP) Context Request, comprising:  
      1) storing Cause values of different versions and definitions for all the Cause values in the GSN (GPRS Support Node) receiving Create PDP Context Request messages;  
      2) after receiving the Create PDP Context Request, the GSN checking the version number, performing internal processing, and filling a Cause value of the identical version in the Create PDP Context Response according to the processing result and the version number of the Create PDP Context Request;  
      3) encapsulating the Create PDP Context Response, and returning it to the sender of the Create PDP Context Request.  
      The different versions comprise the GTPv0 version and GTPv1 version; the definition for Cause values in the GTPv1 version includes at least the following descriptions:  
      a) “All dynamic PDP addresses are occupied” indicates that no free dynamic PDP address is available in the GSN which can be allocated to the UE initiating an activation;  
      b) “No memory is available” indicates that no enough memory is available in the GSN to support the activation;  
      c) “No resources available” indicates that some kinds of resources have been temporarily used up and the activation can not be supported.  
      The Step 2) may comprise:  
      2a) after receiving the Create PDP Context Request message, the GSN checking the version number of the message according to the message header thereof, if it is the GTPv1 version, performing Steps 2b)˜2g) only; otherwise, performing Steps 2h)˜2k) only;  
      2b) the GSN performing internal processing and getting a processing result;  
      2c) if the processing result is that the GSN has created a PDP context successfully, the Cause value is set as “Request Accepted”;  
      2d) if the processing result is that the GSN fails to create a PDP context because no free dynamic PDP address is available, the Cause value is set as “All dynamic PDP addresses are occupied”;  
      2e) if the processing result is that the GSN fails to create a PDP context because there is no enough memory available, the Cause value is set as “No memory is available”;  
      2f) if the processing result is that the GSN fails to create a PDP context because of lack of resources, the Cause value is set as “No resources available”;  
      2g) if the processing result is that the GSN fails to create a PDP context due to reasons other than the above, the Cause value is set according to the descriptions in specifications of the existing GTPv1 version;  
      2h) the GSN performing internal processing and getting a processing result;  
      2i) if the processing result is that the GSN has created a PDP context successfully, the Cause value is set as “Request Accepted”;  
      2j) if the processing result is that the GSN fails to create a PDP context because no free dynamic PDP address is available or there is no enough available memory, or because of lack of other resources, the Cause value is set as “No resources available”;  
      2k) if the processing result is that the GSN fails to create a PDP context due to reasons apart from the above, the Cause value is set according to the descriptions in the specifications of the existing GTPv0 version.  
      The Step 2) may comprise as well:  
      2A) the GSN receiving a Create PDP Context Request message;  
      2B) the GSN performing internal processing and getting a processing result;  
      2C) if the processing result is that the GSN has created a PDP context successfully, the Cause value is set as “Request Accepted”;  
      2D) if the processing result is that the GSN fails to create a PDP context because no free dynamic PDP address is available, reading the Create PDP Context Request message and checking the version number of the message according to the message header thereof, if it is the GTPv1 version, the Cause value is set as “All dynamic PDP addresses are occupied”; otherwise, it is the GTPv0 version and the Cause value is set as “No resources available”;  
      2E) if the processing result is that the GSN fails to create a PDP context because there is no enough memory available, reading the Create PDP Context Request message and checking the version number of the message according to the message header thereof, if it is the GTPv1 version, the Cause value is set as “No memory is available”; otherwise, it is the GTPv0 version and the Cause value is set as “No resources available”;  
      2F) if the processing result is that the GSN fails to create a PDP context due to reasons other than the above, checking the version number and setting the Cause value according to the version number and following the descriptions in the specifications of the GTPv0 or GTPv1 version.  
      The GSN may comprise a Gateway GPRS Supporting Node (GGSN) or a Serving GPRS Support Node (SGSN).  
      As seen from the technical scheme of the present invention, this method for processing Create PDP Context Request makes it possible to return in a Create PDP Context Response message the most suitable Cause value based on the actual situations, and feedback a more accurate reason of failure to the SGSN so as to avoid the problem that the Cause values returned by the GGSN which support different GTP versions can not be understood by the other side when the GGSN fails to activate the designated PDP context. In this way, it is convenient to localize and solve the problem causing the failed activation. At the same time, the correct use of Cause values defined in the protocol can avoid incompatibility between messages of different GTP versions and prevent the protocol resources from being wasted. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       FIG. 1  is a schematic diagram illustrating the architecture of UMTS;  
       FIG. 2  is the flowchart of the PDP context activating process in the prior art;  
       FIG. 3  is the flowchart for processing the Create PDP Context Request in accordance with the first preferred embodiment of the present invention;  
       FIG. 4  is the flowchart for processing the Create PDP Context Request in accordance with the second preferred embodiment of the present invention. 
    
    
     EMBODIMENTS OF THE INVENTION  
      The present invention is described in detail hereinafter with reference to the accompanying drawings.  
      In accordance with the method of the present invention for processing the Create PDP Context Request, first save explicit definitions of newly added Cause values in the GTPv1 version in the GSN; then, after receiving a Create PDP Context Request message, the GSN checks the protocol version number of the Create PDP Context Request message during the processing, sets different Cause values of the corresponding version in the cause field of the Create PDP Context Response message, encapsulates the Create PDP Context Response message and sends it back to the sender.  
      In the first preferred embodiment of the present invention, the GSN checks the version number of the Create PDP Context Request message before the internal processing. Then, the GSN sets different Cause values of the corresponding version in the cause field of the Create PDP Context Response message according to the processing result, encapsulates the Create PDP Context Response message and sends it back to the sender.  
      In this embodiment, the GGSN stores explicit definitions of all the Cause values in the GTPv0 and GTPv1 versions beforehand. If the Cause value included in the Create PDP Context Response received by the SGSN is ‘Request Accepted’, then the SGSN activates the PDP context and starts to transfer data packets between the MS and the external packet data network.  
      Cause values other than the above show that the context has not been activated in the GGSN, and the specific reasons can be obtained from the received Cause values. In the GTPv1 version, “All dynamic PDP addresses are occupied” represents that the GSN has no more free dynamic PDP addresses available for the UE which initiates this activation procedure; “No memory is available” represents that there is no enough memory in the GSN to support this activation procedure; and “No resources available” represents that some kind of resources have been used up temporarily so that the activation is not supported. It should be noted that the cases represented by the Cause value “No resources available” exclude the two cases that all dynamic PDP addresses are occupied and no memory is available. The descriptions of other definitions remain unchanged, and it is not needed to make any modification in the GTPv0 version.  
      The implementing process of this embodiment is shown in  FIG. 3 , which comprises the following steps:  
      Step  301 : A Create PDP Context Request message is received by the GGSN.  
      Step  302 : The GGSN reads the Create PDP Context Request message, and checks the version number of this message. There are three bits in the message header of a GTP message for defining the GTP version used by the message: 000stands for GTPv0 while 001for GTPv1. If the version is GTPv1, then execute Step  303 ; otherwise, it is GTPv0, and execute Step  313 .  
      Step  303 : The GGSN performs internal processing and gets a processing result. The processing method is the same as in the prior art.  
      Steps  304 ˜ 305 : If the processing result is that the GGSN creates a PDP context successfully, set the Cause value as “Request Accepted” and go to Step  321 .  
      Steps  306 ˜ 307 : If the processing result is that the GGSN fails to create a PDP context because free dynamic PDP address is not available, set the Cause value as “All dynamic PDP addresses are occupied” and go to Step  321 .  
      Steps  308 ˜ 309 : If the processing result is that the GGSN fails to create a PDP context because there is no enough memory available, set the Cause value as “No memory is available”, and go to Step  321 .  
      Steps  310 ˜ 311 : If the processing result is that the GGSN fails to create a PDP context due to lack of other resources, set the Cause value as “No resources available”, and go to Step  321 .  
      Step  312 : If the processing result is that the GGSN fails to create a PDP context because of other errors, set the Cause value according to the description in the specifications of the existing GTPv1 version. For instance, if the GGSN does not support the specified PDP type or PDP address, set the Cause field in the response message as ‘Unknown PDP address or PDP type’; if the GGSN does not support the specified Access Point Name (APN), set the Cause field in the response message as ‘Missing or unknown APN’, and so on. Then, go to Step  321 .  
      Step  313 : The GGSN performs internal processing and gets a processing result. The processing method is the same as in the prior art.  
      Steps  314 ˜ 315 : If the processing result is that the GGSN creates a PDP context successfully, set the Cause value as “Request Accepted”, and perform Step  321 .  
      Steps  316 ˜ 319 : If the processing result is that the GGSN fails to create a PDP context because free dynamic PDP address is not available, or because there is no enough memory available, or due to lack of other resources, set the Cause value as “No resources available”, and go to Step  321 .  
      Step  320 : If the processing result is that the GGSN fails to create a PDP context because of other errors, set the Cause value according to the description in the specifications of the GTPv0 version. For instance, if the GGSN does not support the specified PDP type or PDP address or Access Point Name (APN), set the Cause field in the response message as ‘Unknown PDP address or PDP type’. Then, execute Step  321 .  
      Step  321 : The GGSN encapsulates the Create PDP Context Response message, and returns it to the sender. The encapsulating method is the same as in the prior art.  
      In the second preferred embodiment of the present invention, the GGSN makes internal processing and gets a processing result before checking the version number of the Create PDP Context Request message, then sets different Cause values of the corresponding version in the cause field of the Create PDP Context Response message according to the version number, encapsulates the Create PDP Context Response message, and sends it back to the sender. Similarly, in this embodiment, the GGSN stores the explicit definitions of all Cause values in the GTPv0 and GTPv1 versions beforehand. The definitions are described in the same way as in the embodiment shown in  FIG. 3 . The implementing process of this embodiment is shown in  FIG. 4 , which comprises the following steps:  
      Step  401 : A Create PDP Context Request message is received by the GGSN.  
      Step  402 : The GGSN makes internal processing and gets a processing result. The processing method is the same as in the prior art.  
      Steps  403 ˜ 404 : If the processing result is that the GGSN creates a PDP context successfully, set the Cause value as “Request Accepted” and go to Step  414 .  
      Steps  405 ˜ 406 : If the processing result is that the GGSN fails to create a PDP context because free dynamic PDP address is not available, then read the Create PDP Context Request message and check the version number of this message. The checking method is the same as in the embodiment shown in  FIG. 3 . If the version is GTPv1, then execute Step  407 ; otherwise, it is GTPv0, and execute Step  412 .  
      Step  407 : Set the Cause value as “All dynamic PDP addresses are occupied” and go to Step  414 .  
      Steps  408 ˜ 409 : If the processing result is that the GGSN fails to create a PDP context because there is no enough memory available, then read the Create PDP Context Request message and check the version number of this message. The checking method is the same as in the embodiment shown in  FIG. 3 . If the version is GTPv1, then execute Step  410 ; otherwise it is GTPv0, and execute Step  412 .  
      Step  410 : Set the Cause value as “No memory is available” and go to Step  414 .  
      Step  411 : If the processing result is that the GGSN fails to create a PDP context due to lack of other resources, go to Step  412 .  
      Step  412 : Set the Cause value as “No resources available” and go to Step  414 .  
      Step  413 : If the processing result is that the GGSN fails to create a PDP context because of other errors, then check the version number and set the Cause value according to the version number, i.e. set the Cause value according to the description in the specifications of the existing GTPv0 or GTPv1 version, and then go to Step  414 .  
      Step  414 : The GGSN encapsulates the Create PDP Context Response message, and returns it to the sender.  
      In the two embodiments above, the Create PDP Context Response message is generated by the GGSN after the received Create PDP Context Request message is processed. In practical applications, it can also be the SGSN that processes the received Create PDP Context Request message and generates the Create PDP Context Response message.  
      As seen in the above two embodiments, the method for processing Create PDP Context Request in accordance with the present invention avoids the possible incompatibility in practical applications, thus applicable to a wider scope, and prevents protocol resources from being wasted. At the same time, specific error reasons based on different processing results can be returned, and it becomes easier in practical applications to locate and solve the problems which cause activation failure. Moreover, it is unnecessary to make any modifications in the existing GTPv0 version, which makes the method highly compatible.