4G/LTE - WiFi Offload

 

 

 

 

WiFi OffLoad : Overall Procedure of Untrusted Data Path Setup

 

This page will show you he overall procedure of UE getting access to a Service or application via Untruted Non-3GPP network (mostly WiFi). The steps described at step (5), (6) is well defined in 3GPP, but you may see some variations at other steps.. but I think the procedure shown in this page would be common in most cases. It would be helpful to get more meanins out of this if you read WiFi Offload CheckList part before you start reading this page. If you are working on the development or testing on WiFi Offloading or VoWiFi (Voice Over WiFi), the detailed understanding of this procedure greatly help you to troubleshoot various issues you would come accross during the test. I personally checks each and every steps of the procedure described here when I am troubleshooting WiFi Offload/VoWiFi. Also, recommend other engineers to check every steps... but in reality, most of them just say "Something does not work. Just help me fix it" :)

 

Following is overall sequence diagram of ePDG Discovery and IKE procedure. This is the case where WiFi AP and UE WiFi module is based on IPv4 (It doesn't matter whether UE is using IPv4 or IPv6 for application layer in this diagram). I will post another section later for the case when UE and AP is using IPv6). Actually the only difference is whether they use DHCP or DHCPv6, but there would be something I need to add in detail for IPv6 case).

 

 

 

(1) 802.11

 

(1.a) and (1.b) belongs to 802.11 protocol. Details of this step is out of the scope of this page. If you want to know the details of this step, refer to step (1)~(7) in WLAN Protocol page.

 

(2) SSID Selection

 

Once UE (WiFi device) decode Beacon, it will show all the SSID it detected. Then you can select a specific SSID manually or the device automatically select the SSID in a certain order you have configured.

 

(3) IP Allocaion for UE WiFi

 

(3.a) DHCP Discover

    Bootstrap Protocol (Discover)

        Message type: Boot Request (1)

        Hardware type: Ethernet (0x01)

        Hardware address length: 6

        Hops: 0

        Transaction ID: 0xff18ecc3

        Seconds elapsed: 1

        Bootp flags: 0x0000 (Unicast)

            0... .... .... .... = Broadcast flag: Unicast

            .000 0000 0000 0000 = Reserved flags: 0x0000

        Client IP address: 0.0.0.0 (0.0.0.0)

        Your (client) IP address: 0.0.0.0 (0.0.0.0)

        Next server IP address: 0.0.0.0 (0.0.0.0)

        Relay agent IP address: 0.0.0.0 (0.0.0.0)

        Client MAC address: aa:bb:cc:dd:ee:ff

        Client hardware address padding: 00000000000000000000

        Server host name not given

        Boot file name not given

        Magic cookie: DHCP

        Option: (53) DHCP Message Type (Discover)

            Length: 1

            DHCP: Discover (1)

        Option: (61) Client identifier

            Length: 7

            Hardware type: Ethernet (0x01)

            Client MAC address: aa:bb:cc:dd:ee:ff

        Option: (57) Maximum DHCP Message Size

            Length: 2

            Maximum DHCP Message Size: 1500

        Option: (60) Vendor class identifier

            Length: 12

            Vendor class identifier: dhcpcd-5.5.6

        Option: (12) Host Name

            Length: 24

            Host Name: android-21b08ec0480ae8b6

        Option: (55) Parameter Request List

            Length: 10

            Parameter Request List Item: (1) Subnet Mask

            Parameter Request List Item: (33) Static Route

            Parameter Request List Item: (3) Router

            Parameter Request List Item: (6) Domain Name Server

            Parameter Request List Item: (15) Domain Name

            Parameter Request List Item: (26) Interface MTU

            Parameter Request List Item: (28) Broadcast Address

            Parameter Request List Item: (51) IP Address Lease Time

            Parameter Request List Item: (58) Renewal Time Value

            Parameter Request List Item: (59) Rebinding Time Value

        Option: (255) End

            Option End: 255

 

(3.b) DHCP Offer

    Bootstrap Protocol (Offer)

        Message type: Boot Reply (2)

        Hardware type: Ethernet (0x01)

        Hardware address length: 6

        Hops: 0

        Transaction ID: 0xff18ecc3

        Seconds elapsed: 1

        Bootp flags: 0x0000 (Unicast)

            0... .... .... .... = Broadcast flag: Unicast

            .000 0000 0000 0000 = Reserved flags: 0x0000

        Client IP address: 0.0.0.0 (0.0.0.0)

        Your (client) IP address: 192.168.0.1 (192.168.0.1)

        Next server IP address: 192.168.0.254 (192.168.0.254)

        Relay agent IP address: 0.0.0.0 (0.0.0.0)

        Client MAC address: aa:bb:cc:dd:ee:ff

        Client hardware address padding: 00000000000000000000

        Server host name not given

        Boot file name not given

        Magic cookie: DHCP

        Option: (53) DHCP Message Type (Offer)

            Length: 1

            DHCP: Offer (2)

        Option: (54) DHCP Server Identifier

            Length: 4

            DHCP Server Identifier: 192.168.0.254 (192.168.0.254)

        Option: (51) IP Address Lease Time

            Length: 4

            IP Address Lease Time: (3600s) 1 hour

        Option: (58) Renewal Time Value

            Length: 4

            Renewal Time Value: (1800s) 30 minutes

        Option: (59) Rebinding Time Value

            Length: 4

            Rebinding Time Value: (3200s) 53 minutes, 20 seconds

        Option: (1) Subnet Mask

            Length: 4

            Subnet Mask: 255.255.255.0 (255.255.255.0)

        Option: (28) Broadcast Address

            Length: 4

            Broadcast Address: 192.168.0.255 (192.168.0.255)

        Option: (6) Domain Name Server

            Length: 4

            Domain Name Server: 192.168.0.254 (192.168.0.254)

        Option: (255) End

            Option End: 255

        Padding

 

(3.c) DHCP Request

    Bootstrap Protocol (Request)

        Message type: Boot Request (1)

        Hardware type: Ethernet (0x01)

        Hardware address length: 6

        Hops: 0

        Transaction ID: 0xff18ecc3

        Seconds elapsed: 1

        Bootp flags: 0x0000 (Unicast)

            0... .... .... .... = Broadcast flag: Unicast

            .000 0000 0000 0000 = Reserved flags: 0x0000

        Client IP address: 0.0.0.0 (0.0.0.0)

        Your (client) IP address: 0.0.0.0 (0.0.0.0)

        Next server IP address: 0.0.0.0 (0.0.0.0)

        Relay agent IP address: 0.0.0.0 (0.0.0.0)

        Client MAC address: aa:bb:cc:dd:ee:ff

        Client hardware address padding: 00000000000000000000

        Server host name not given

        Boot file name not given

        Magic cookie: DHCP

        Option: (53) DHCP Message Type (Request)

            Length: 1

            DHCP: Request (3)

        Option: (61) Client identifier

            Length: 7

            Hardware type: Ethernet (0x01)

            Client MAC address: aa:bb:cc:dd:ee:ff

        Option: (50) Requested IP Address

            Length: 4

            Requested IP Address: 192.168.0.1 (192.168.0.1)

        Option: (54) DHCP Server Identifier

            Length: 4

            DHCP Server Identifier: 192.168.0.254 (192.168.0.254)

        Option: (57) Maximum DHCP Message Size

            Length: 2

            Maximum DHCP Message Size: 1500

        Option: (60) Vendor class identifier

            Length: 12

            Vendor class identifier: dhcpcd-5.5.6

        Option: (12) Host Name

            Length: 24

            Host Name: android-21b08ec0480ae8b6

        Option: (55) Parameter Request List

            Length: 10

            Parameter Request List Item: (1) Subnet Mask

            Parameter Request List Item: (33) Static Route

            Parameter Request List Item: (3) Router

            Parameter Request List Item: (6) Domain Name Server

            Parameter Request List Item: (15) Domain Name

            Parameter Request List Item: (26) Interface MTU

            Parameter Request List Item: (28) Broadcast Address

            Parameter Request List Item: (51) IP Address Lease Time

            Parameter Request List Item: (58) Renewal Time Value

            Parameter Request List Item: (59) Rebinding Time Value

        Option: (255) End

            Option End: 255

 

(3.d) DHCP Ack

    Bootstrap Protocol (ACK)

        Message type: Boot Reply (2)

        Hardware type: Ethernet (0x01)

        Hardware address length: 6

        Hops: 0

        Transaction ID: 0xff18ecc3

        Seconds elapsed: 1

        Bootp flags: 0x0000 (Unicast)

            0... .... .... .... = Broadcast flag: Unicast

            .000 0000 0000 0000 = Reserved flags: 0x0000

        Client IP address: 0.0.0.0 (0.0.0.0)

        Your (client) IP address: 192.168.0.1 (192.168.0.1)

        Next server IP address: 192.168.0.254 (192.168.0.254)

        Relay agent IP address: 0.0.0.0 (0.0.0.0)

        Client MAC address: aa:bb:cc:dd:ee:ff

        Client hardware address padding: 00000000000000000000

        Server host name not given

        Boot file name not given

        Magic cookie: DHCP

        Option: (53) DHCP Message Type (ACK)

            Length: 1

            DHCP: ACK (5)

        Option: (54) DHCP Server Identifier

            Length: 4

            DHCP Server Identifier: 192.168.0.254 (192.168.0.254)

        Option: (51) IP Address Lease Time

            Length: 4

            IP Address Lease Time: (3600s) 1 hour

        Option: (58) Renewal Time Value

            Length: 4

            Renewal Time Value: (1800s) 30 minutes

        Option: (59) Rebinding Time Value

            Length: 4

            Rebinding Time Value: (3200s) 53 minutes, 20 seconds

        Option: (1) Subnet Mask

            Length: 4

            Subnet Mask: 255.255.255.0 (255.255.255.0)

        Option: (28) Broadcast Address

            Length: 4

            Broadcast Address: 192.168.0.255 (192.168.0.255)

        Option: (6) Domain Name Server

            Length: 4

            Domain Name Server: 192.168.0.254 (192.168.0.254)

        Option: (255) End

            Option End: 255

        Padding

     

 

 

(4) ePDG Discovery

 

Refer to ePDG Discovery Page for the details.

 

 

(5) IKEv2

 

This is very long/complicated process and described in a separate page. Refer to Overall Sequence Flow - 3GPP 33.402 of IKE page.

 

 

(6) CSCF Discovery

 

Actually this is not an independen procedure. This is a part of IKEv2 procedure and described in detail in CSCF Descovery page.