GPRS Tunneling protocol is an IP/UDP based protocol used in GSM, UMTS and LTE networks. GTP can be decomposed into separate protocols, GTP-C, GTP-U and GTP. GTP-C is used within the GPRS core network for signaling between the gateway GPRS support nodes (GGSN) and serving GPRS support nodes (SGSN). GTP-U is used for carrying user data within the GPRS core network and between the radio access network and the core network. The user data transported can be packets in any of IPv4, IPv6, or PPP formats. GTP uses the same message structure as GTP-C and GTP-U, but has an independent function. It can be used for carrying charging data from the charging data function (CDF) of the GSM or UMTS network to the charging gateway function (CGF).