Section: 16.3.4 AAA-Initiated PDP context termination
Content: RADIUS is used as the protocol between the GGSN and an AAA server or proxy for applications (e.g. MMS) to deliver information related to GPRS user session. However some IP applications could need to interwork with the GGSN to terminate a particular PDP context. For this purpose, the AAA server or proxy may send a RADIUS Disconnect Request to the GGSN. As depicted in figure 25, the GGSN may react by deleting the corresponding PDP context or silently discard the Disconnect Request message. For more information on RADIUS Disconnect, see RFC 3576 [41]. If the GGSN deletes the corresponding PDP context, it need not wait for the DeletePDPContextResponse from the SGSN before sending the RADIUS DisconnectResponse to the AAA server. The Teardown-Indicator in the RADIUS Disconnect Request message indicates to the GGSN that all PDP contexts for this particular user and sharing the same user session shall be deleted. The PDP contexts belong to the same IP-CAN session are identified by the Acct-Session-Id. The Charging-Id contained in the Acct-Session-Id can be of any PDP context of the user. The GGSN is able to find out all the related PDP contexts sharing the same user session once it has found the exact PDP context from the Acct-Session-Id. If a user has the same user IP address for different sets of PDP contexts towards different networks, only the PDP contexts linked to the one identified by the Acct-Session-Id shall be deleted. Since the Charging-Id contained in the Acct-Session-Id is already sufficient to uniquely identify PDP context(s) for a user session on a GGSN, it has no impact if the user IP address is not known by the GGSN (e.g. in the case of transparent PPP IP-CAN sessions). In this case the user IP address in the Disconnect message should be set to zero (e.g. 0.0.0.0 for IPv4). NOTE: As showed on figure 25, the GGSN need not wait for the DeletePDPContextResponse from the SGSN to send the RADIUS DisconnectResponse to the AAA server. Figure 25: PDP Context deletion with RADIUS