Today, we will find more about LTE GTP tunnels that we have discussed previously.
In the Figure below, GTP tunnels are established in the link from the eNB to the S-GW and from the S-GW to the P-GW.
Downlink (DL): From PDN (Internet) to UE
[1] A packet (Source IP=www.google.com, Destination IP=UE) is sent from the Internet to the P-GW.
[2] The P-GW compares the five tuples of the received packet (i.e. Source IP, Destination IP, Protocol ID, Source Port, and Destination Port) with its DL TFT (by performing classification based on five tuples) and determines on which EPS bearer to place the packet (or through which GTP tunnel to send the packet. This means that each UE has its own GTP tunnel (to be accurate, there can be more than one GTP tunnel depending on how many applications are being used).
[3] Once it figures out on which EPS bearer to place the packet, the P-GW can decide to which S-GW and with which "S5 TEID (DL)" value to send. Then, it sends a GTP tunneling packet containing (1) an outer IP header set as "SIP=P-GW, DIP=S-GW" and (2) a GTP header set as "S5 TEID (DL)" to the S-GW.
Here, the value of S5 TEID (DL) is allocated by the S-GW and forwarded to the P-GW when the UE attaches the network.
[4] The S-GW, based on the value "S5 TEID (DL)" in the received packet, figures out to which eNB and with what "S1 TEID (DL)" to send. Then, it sends a GTP tunneling packet containing (1) an outer IP header set as "SIP=S-GW, DIP=eNB" and (2) a GTP header set as "S1 TEID (DL)" to the eNB.
Here, the value of S1 TEID (DL) is allocated by the eNB and forwarded to the P-GW when the UE attaches the network.
[5] Same thing here. The eNB, based on the value "S1 TEID (DL)" in the received packet, figures out to which UE and through which "DRB" to send the packet. Then, it stripes off the GTP tunnel header in the outer IP packet and adds "DRB ID (DL)" to the inner IP packet and forwards it to the UE.
Uplink (UL): From UE to PDN (Internet)
[1] A UE attempts to access www.google.com from a web browser (application) in the UE.
[2] The UE determines through which EPS bearer it should send the packet based on the UL TFT, which was given by the network when the UE connected to the network. UL TFT also performs classification of the packets based on five tuples and the UE determines on which EPS bearer to place the packet.
[3] Once it figures out on which EPS bearer to place the packet, the UE can decide to which eNB and through which "DRB" to send. Then, it adds a DRB ID to the packet and sends it to the eNB.
[4] The eNB, based on the value "DRB ID (UL)" in the received packet, figures out to which S-GW and with what "S1 TEID (UL)" to send. Then, it sends a GTP tunneling packet containing (1) an outer IP header set as "SIP=eNB, DIP=S-GW" and (2) a GTP header set as "S1 TEID (UL)" to the S-GW.
Here, the value of S1 TEID (UL) is allocated by the S-GW and forwarded to the eNB when the UE attaches the network.
[5] The S-GW, based on the value "S1 TEID (UL)" in the received packet, figures out to which P-GW and with what "S5 TEID (UL)" to send the packet. Then, it sends a GTP tunneling packet containing (1) an outer IP header set as "SIP=S-GW, DIP=P-GW" and (2) a GTP header set as "S5 TEID (UL)" to the P-GW.
Here, the value of S5 TEID (UL) is allocated by the P-GW and forwarded to the S-GW when the UE attaches the network.
[6] The P-GW, based on the value "S5 TEID (DL)" in the received packet, figures out from which UE the packet was sent. Then, it stripes off the GTP tunnel header in the outer IP packet and forwards the original IP packet to the Internet.
It is very descriptive and interesting information about GTP. I was wondering if you have any idea about GTP load balancing. In which part of the GTP we can implement if we want to implement GTP load balancing.
kind regards,
Kibrom
please I really need the answer of this question.
Kibrom asked very intellectual question,any one have answer for it ?
If GTP sender assigns dynamically for their UDP source carrying GTP-U :
=> “Sender IP + UDP source port” could be a key for load balancing.
=> I saw some EPC vendors use this scheme for their internal load balancing.
If not,
=> “Combination of sender IP + GTP-U TEID” could be a key for load balancing
=> I also know some EPC vendors use only 2152 for their source port number for GTP-U
What about NIDD? Non IP Data Delivery? In this case in IOT where the UE does not support IP stack, How for example in (3) Uplink it works in this case, how the UE will determine through which EPS bearer it should send the packet ?
What about GTP-C tunnels? Does each UE have one such tunnel throughout its connection lifetime?