Monday, January 30, 2012

Initial Network Attach -- EPC specific callflow with TEIDs

Ref: 3GPP TS 23.401




In this page, I want to discuss about the Initial Network attach call flow along with TEIDs. (Starting from MME, assuming the message flows from MME to eNodeB to UE are successful). Before going into the basics, lets just understand the GTP tunnels.

GTP tunnel:

GTP tunnels are used between two nodes communicating over a GTP based interface, to separate traffic into different communication flows. A GTP tunnel is identified in each node with a TEID, an IP address and a UDP port number.

A TEID is a 4 byte field in the GTP header. TEID values are exchanged between the tunnel end-points. Each sending node sends a message assigning a TEID the receiving end has to use.

Initial Attach:

Whenever UE attaches to a PDN, it gets an ip-address based on the PDN type (IPv4, IPv6 or IPv4v6) which it has requested for.  The call flow is as below:

1. MME sends CREATE_SESSION_REQUEST with a TEID '0' in its GTP header to SGW. It allocates an EPS Bearer Identity for the Default Bearer associated with the UE. This message has MME-CONTROL FTEID IE which MME is sending towards SGW so that SGW can use this TEID for sending any message on S11. (In the above figure it is D)

2. SGW creates a new entry in its EPS Bearer table and sends a Create Session Request to PGW on TEID '0'.  This message has SGW-CONTROL FTEID IE which SGW is sending towards PGW so that PGW can use this TEID for sending control messages on S5. (In the above figure it is C). Also this message has BEARER_CONTEXT_TO_BE_CREATED IE which has  SGW-DATA FTEID which PGW can use for sending GTP-PDUs on S5. (From the fig. it is F)

3. If dynamic PCC is deployed, PGW sends CCR-INITIAL to PCRF on Gx interface to pull all the policy and charging rules to be installed for the PDN session.

4. PCRF responds with CCA-INITIAL with all the rules to PCEF. This step determines the number of dedicated bearers to be created at the Initial attach. Based on the Bearer QoS (QCI, ARP), PGW initiates the creation of the Dedicated bearers.

5. The PGW creates a new entry in its EPS bearer context table and generates a Charging Id for the Default Bearer. The PGW returns the CREATE_SESSION_RESPONSE on TEID  'C'. It allocates an ip-address based on the PDN type selected. This message has PGW-CONTROL FTEID IE which SGW can use this TEID for sending control messages on S5. (In the above figure it is B). Also this message has BEARER_CONTEXT_CREATED IE which has  PGW-DATA FTEID which SGW can use for sending GTP-PDUs on S5. (From the fig. it is E).

6. SGW returns this Create Session Response on TEID 'D' to MME. This message has SGW-CONTROL FTEID IE which MME can use for sending any message on S11. (In the above figure it is A).

Till this point the, S11 tunnel and S5 control and Data tunnels got established successfully.

7.  eNodeB upon successful messaging with UE, sends the ENB-DATA FTEID to MME. Now MME sends MODIFY_BEARER_REQUEST message on TEID with this IE to SGW so that SGW uses this TEID for sending GTP-PDUs on S1-U interface. (In the above figure it is X).

8. SGW responds to MME with MODIFY_BEARER_RESPONSE on TEID D. In this message it sends SGW-DATA FTEID which eNodeB has to use on S1-U interface. (In the above figure it is Y). MME sends this TEID to eNodeB which successfully marks the S1-U tunnel creation.

After this phase, uplink traffic from eNodeB to PDN via SGW - PGW and downlink data from PDN to eNodeB via PGW-SGW can be sent successfully on the GTP tunnels established.




10 comments:

  1. Good summary, really well done.
    You could also include all those steps as a call flow chart. Some must read to understand and remember and for others enough is just to see the call flow.
    Nevertheless that's very good description really can enlighten someone.

    ReplyDelete
  2. Great article! Best find! Quoting this article as reference for the uninitiated.

    ReplyDelete
  3. neat and clean. thx.

    ReplyDelete
  4. Well explained. Could you please add call flow for VoLTE as well.

    ReplyDelete
  5. This is very informative! I am a recruiter in the Telecom space and this is great even for someone who is not very technical.

    ReplyDelete
  6. i have a doubt on intra frequency handover in lte , and is the there and sector concept in lte for example we have in umts three different codes for three sectors

    ReplyDelete
  7. intra re selection call flow if any one can explain in LTE

    advance thanks a lot !!!!!!!!!!!!!!!!!!!!!!!!!

    ReplyDelete
  8. Thanks this was useful. Just a side question. So the purpose of Modify_Bearer_Req/Resp is to communicate TEIDs to be used on S1-U interface. But this communication happens through MME. Also Modify_Bearer procedure is initiated only when S1AP context setup is done. Is my understanding correct here?

    ReplyDelete
  9. Thanks Sripada....Simple and Informative.

    ReplyDelete