12. GTP

12.1. In This Chapter

This chapter provides information about using GTP tunnels in TPSDA, including a configuration process overview.

Topics in this chapter include:

12.2. GTP Uplink

SR OS supports subscriber traffic forwarding over an uplink GTP tunnel towards a GGSN or P-GW. This requires a per-subscriber GTP tunnel based on authentication to be configured. Each subscriber may access only a single APN. Both GTPv1 (Gn) and GTPv2 (S2a/S2b) are supported. A single primary PDP context per subscriber is supported on the Gn interface (3GPP TS 29.060 Release 8) from SR OS to the GGSN. A single default-bearer per subscriber is supported on the S2b interface (3GPPTS 29.274 Release 10), and S2a interface (3GPP TS 29.274 Release 11) from SR OS to the P-GW.

GTP-U encapsulation requires IOM3 or better.

12.2.1. Identification Attributes

GTP requires at least an IMSI and an APN to set up a connection. The IMSI is required to identify the user, and the APN is required to identify the network the user is connecting to.

There is a 1:1 relationship between IMSI and subscriber ID. It is possible to provision only one of these and the other will be accepted as the same value. If both are provisioned, they must be equal. Therefore, it is not possible to set up more than one GTP tunnel per subscriber.

APN can be provisioned explicitly per subscriber, or a default APN can be provisioned per VRF. If this APN does not contain an Operator Identifier (OI), it will be added automatically based on the IMSI.

12.2.2. P-GW/GGSN Selection

The initial address of the P-GW or GGSN can either be provided during authentication, or, in absence of authentication, resolved dynamically via DNS. For DNS, a FQDN is generated based on the APN as specified in 3GPP 29.303. This FQDN always consists of both the Network-ID (NI) portion and the OI portion, and is formatted as “NI.apn.epc.mnc<MNC>.mcc<MCC>.3gppnetwork.org”. The system will perform an S-NAPTR lookup with this FQDN.

When multiple GW addresses are returned as part of this lookup, load-balancing is performed according to regular NAPTR and SRV rules. If no addresses are returned, or the S-NAPTR lookup failed, the system tries a regular A host lookup with the same FQDN. In this case, SR OS load-balances over multiple GW addresses using a round-robin mechanism. DNS servers can be configured per VPRN, except for the base router where the servers defined in the BOF are used.

config>router
config>service>vprn
    apn "internet.mno1.apn"
config>service>vprn>dns
    primary-dns 130.1.1.1
    secondary-dns 131.1.1.1
    tertiary-dns 132.1.1.1
    ipv4-source-address 170.1.1.1
exit

After initial GTP setup, it is possible for the P-GW or GGSN to return another address as a GTP-C or GTP-U destination. All data plane traffic is sent using the signaled GTP-U address. All subsequent control plane traffic is forwarded to the new GTP-C address.

The VRF used for GTP tunneling can be selected via provisioning a retain service ID for the subscriber. The source IP for GTP tunneling is taken from a loopback interface with the name “system” in that VRF. If no such interface is present, the tunnel setup fails.

12.2.3. Configuration

Profiles with signaling-related configuration per mobile gateway can be created locally on the SR OS router. These profiles include configuration for the interface type used between the router and the mobile gateway, path management parameters, retransmission parameters, and default values for GTP information elements such as AMBR. Each profile can be mapped to a specific GW IP address or subnet per VRF. Most of the per-session/context parameters can be overridden via RADIUS authentication. See the RADIUS Attributes Reference Guide for more information.

config>subscr-mgmt>wlan-gw>mgw-profile
    no description
    interface-type s2a
    ip-ttl 255
    keep-alive interval 60 retry-count 4 timeout 5
    message-retransmit timeout 5 retry-count 3
    protocol-configuration-options apco
    no python-policy
    rat-type wlan
    no report-wlan-location
    session-hold-time 30
    charging-characteristics
        no home
        no roaming
    exit
    ggsn
        qos
            no ambr
            arp 1
            down-link gbr 2000 mbr 2000
            up-link gbr 5000 mbr 5000
        exit
    exit
    pgw
        qos
            ambr down-link 20000 up-link 10000
            arp 1
            down-link gbr 0 mbr 0
            qci 8
            up-link gbr 0 mbr 0
        exit
    exit
 
config>router
config>service>vprn
    mgw-map
        address 198.51.100.1/32 "pgw-policy"
        address 203.0.113.0/24 "ggsn-policy"
    exit

12.2.4. QoS Support

SR OS provides appropriate traffic treatment and remarking based on DSCP bits in the outer and inner header in GTP packets.

Downstream from PGW/GGSN, the DSCP bits from the outer header in a GTP packet can be mapped to a forwarding class on network ingress, which can be preserved through the chassis as the packet passes to the egress IOM. On egress, reclassification can be done based on either the inner or outer DSCP bits, depending on the configuration value of the use-ingress-l2tp-dscp option in the SLA profile.

In the upstream direction, regular ESM FC classification is used. This FC is carried through the IOM to the egress complex. In the egress complex, this FC can be used for remarking of the outer DSCP values.

DSCP and default FC values for egress GTP-C packets can be configured under sgt-qos.

It is possible to signal the subscriber’s aggregate rate or the rate of a specific scheduler in the downlink AMBR IE in both GTPv1-C and GTPv2-C. This uses the report-rate configuration of the SLA profile; the pppoe-actual-rate and rfc5515-actual-rate values are not applicable for GTP. This value can be subtracted with a value signaled during authentication to take into account an average use for selective breakout.

config>subscr-mgmt>sla-prof>egress
    report-rate

Other signed QoS IE values are taken from static configuration or values signaled in authentication.

12.2.5. GTP Session Hold

Deletion of an IPoE or PPPoE session also triggers deletion of any corresponding GTP sessions. This deletion is subject to a configurable hold time. When the subscriber returns with the same GGSN/P-GW parameters within the hold time, the GTP connection will not be resignaled. This avoids releasing resources (such as IP addresses) too quickly on the GGSN/P-GW. This is useful in the following cases:

  1. Non-seamless control plane mobility with WLAN-GW. Due to SHCV usage, the UE will be completely removed, but should reconnect quickly, preferably with the same IP address. Having a short hold time avoids the P-GW releasing the IP address.
  2. IP handover from WiFi-GW to RAN. In some cases, WiFi connectivity is lost before wireless data connectivity is established. By holding the GTP session active on the WLAN-GW, the IP address is also held on the GGSN/P-GW until the RAN connection is complete.

While a GTP session is in hold, all downstream traffic is dropped, but no error indication messages are sent.

12.2.6. Selective Breakout

This feature adds support for selecting a subset of traffic from a host (via IP filter) for local forwarding, while tunneling the remaining traffic to GGSN/PGW. This allows selected traffic to bypass the mobile packet core. The IP address for the host still comes from the GGSN/PGW during GTP session setup. Therefore, the selected traffic for local breakout from SR OS requires NAT functionality in order to draw the return traffic back to the router. To support address overlap within GTP, the NAT functionality is L2-aware. The selection of traffic for local breakout (local forwarding and NAT) is based on a net action in an upstream Ip filter applied to the host.

Selective breakout can be enabled on a per-host basis via RADIUS VSA (ALC-GTP-Local-Breakout) in access-accept. It is not possible to change this during a host’s lifetime, such as via CoA. AA functionality is supported for local breakout traffic. Also, LI (after NAT) is supported for local breakout traffic, and is enabled via existing secure CLI, as stated in the OAM and Diagnostics Guide.

system>config>filter
    ip-filter 10 create
        entry 1 create
            match protocol udp
                dst-port eq 4000
            exit
            action gtp-local-breakout
        exit

On traffic ingress from the host UE, normal ESM host lookup and CAM lookup with the ingress host filter is performed. If there is a match in the filter indicating “gtp-local-breakout”, the traffic is forwarded within the chassis to an ISA-BB, where is it subjected to L2-aware NAT function, and afterwards is forwarded using regular routing in the NAT outside VRF. The inside IP address is the address returned in GTP, and may not match a NAT L2-aware inside prefix. The outside IP is an address belonging to the NAT outside IP address range on the ISA. If the filter action results in a “forward” action (default), the traffic is GTP-tunneled without performing NAT functionality. The traffic received from the network can be a normal L3 packet or a GTP encapsulated packet. The normal Layer 3 packet is expected to be destined to the NAT outside IP and is normally routed to the NAT ISA.

By default, per-host accounting includes counters that are aggregated across GTP and local breakout traffic. Separate counters can be obtained by directing the GTP and local breakout traffic into different queues associated with the corresponding ESM host based on QoS IP classification. NAT information (outside IP and port range) associated with an ESM host subjected to selective breakout is included in accounting-updates.

Selective breakout is supported for IPv4 only.

12.2.7. IPoE Support

A GTPv2 session or GTPv1 PDP context will be set up when IPoE session authentication includes any GTP parameters. The GTP session provides the IPv4 and IPv6 address used for the connecting host. Currently only DHCPv4 and SLAAC are supported to deliver these addresses back to the client. If DHCP is used, SR OS automatically derives a standards-compliant subnet mask and default GW from the signaled IP address. It is important that all GTP subscribers are in a shared split-horizon domain and that there is no L2 switching between GTP subscribers. Only a single IPoE session is supported per GTP subscriber. Additionally, DNS and NBNS can be signaled via GTP (A)PCO and reflected in DHCP, SLAAC, and stateless DHCPv6. Control plane packets such as DHCP and ICMPv6 RS are always terminated on the BNG and are not forwarded over GTP.

Figure 180 shows a sample IPoE session for GTP.

Figure 180:  IPoE Session 

GTP without an IPoE session is available for IPv4 DHCP leases only for backwards compatibility. It may not be used for new deployments; existing deployments should move to the IPoE session concept.

12.2.8. PPPoE Support

A GTPv2 session or GTPv1 PDP context is set up when PPPoE session authentication includes any GTP parameters. The GTP session provides the IPv4 and IPv6 address to be used for the connecting host. IPCP and IPv6CP with SLAAC are supported to signal these addresses to the client. Only a single PPPoE session is supported per GTP subscriber. Additionally, DNS and NBNS can be signaled via GTP (A)PCO and reflected in IPCP, SLAAC, and stateless DHCPv6. Control plane packets such as ICMPv6 RS are always terminated on the BNG and are not forwarded over GTP.

12.3. GTP Peering

SR OS tracks each GTP-C peer for which it has at least a single GTP session or PDP context active. It tracks the peer’s operational state with the following mechanisms:

  1. Regular GTP echo messages and parameters are configurable on a per-mgw-profile basis. When the echo mechanism fails, the peer is considered down.
  2. Active route entries towards the peer are monitored. If no route towards the peer is available, the peer is considered down.
  3. The Restart counter value of the peer is monitored. This is initially learned when the first active session or context is created. If the value is not available in regular messaging, an echo request is sent out immediately to learn the correct value. If the Restart counter is incremented during any later messaging exchange, the peer is considered rebooted.

When a peer is considered down or rebooted, all active GTP sessions and PDP contexts are forcefully removed.

SR OS also keeps a recovery counter in a persistent state, and increments this value on every reboot. This value is kept in the restcntr.txt file on CF3 and may not be modified or removed. This value is included in every control plane message.

SR OS responds to GTP echo messages for both active peers and unknown sources. This can be restricted via CPM filters if required. An incoming echo request from an unknown source will not create a peer; this can only be done by setting up GTP sessions or PDP contexts.

12.4. Operational Commands

These commands show state related to mobile gateways and GTP sessions.

show router wlan-gw 
           mobile-gateway – Display mobile gateway information
           mgw-map – Display the mobile gateway map
           mgw-address-cache – Display the mobile gateway’s DNS lookup address cache.
 
show router wlan-gw mgw-address-cache [apn <apn-string>]
                       <apn-string>         : [80 chars max]
 
show router wlan-gw mobile-gateway
                [mgw-profile <profile-name>] [local-address <ip-address>] [control <protocol>]
                remote-address <ip-address> [udp-port <port>]
                remote-address <ip-address> [udp-port <port>] statistics
 
<profile-name>       : [32 chars max]
 <ip-address>            : ipv4-address   - a.b.c.d
               <ipv6-address   - x:x:x:x:x:x:x:x   (eight 16-bit pieces)
                                             x:x:x:x:x:x:d.d.d.d
                                             x - [0..FFFF]H
                                            d - [0..255]D
               <protocol>          : gtpv1-c|gtpv2-c
               <port>                 : [1..65535]

12.4.1. show router wlan-gw mobile-gateway

===============================================================================
Mobile gateways
===============================================================================
Remote address              : 5.20.1.2
UDP port                          : 2123
-------------------------------------------------------------------------------
State                              : up
Local address               : 5.20.1.3
Profile                           : default
Control protocol         : gtpv1-c
Restart count              : 3
Time                             : 2012/06/28 08:07:11

12.4.2. show router 300 wlan-gw mgw-address-cache

===============================================================================
Mobile Gateway address cache
===============================================================================
APN    : full.dotted.apn.apn.epc.mnc010.mcc206.3gppnetwork.org
-------------------------------------------------------------------------------
Mobile Gateway address      : 5.20.1.2
Time left (s)                             : 3587
-------------------------------------------------------------------------------
No. of cache entries: 1
No. of Mobile gateways: 1
===============================================================================
 
 
show subscriber-mgmt wlan-gw
      gtp-session     - Display GTP session information
      gtp-statistics  - Display GTP statistics
      mgw-profile     - Display Mobile Gateway profile information
      
show subscriber-mgmt wlan-gw gtp-session
              imsi <imsi> apn <apn-string>
              [mgw-address <ip-address>] [mgw-router <router-instance>] [remote-control-teid <teid>] [local-
        control-teid <teid>] [detail]
              imsi <imsi>
                   <imsi>               : [a string of digits between 9 and 15 long]
                  <apn-string>         : [80 chars max]
                  <ip-address>         : ipv4-address   - a.b.c.d
                   <ipv6-address>      : x:x:x:x:x:x:x:x   (eight 16-bit pieces)
                                                       x:x:x:x:x:x:d.d.d.d
                                                       x - [0..FFFF]H
                                                       d - [0..255]D
                     <router-instance>    : <router-name>|<service-id>
                                                     router-name    - "Base"
                                                     service-id     - [1..2147483647]
                     <teid>               : [1..4294967295]
 
 
show subscriber-mgmt wlan-gw gtp-statistics
show subscriber-mgmt wlan-gw mgw-profile
            <profile-name>
            <profile-name> associations
            mgw-profile
                        <profile-name>       : [32 chars max]

12.4.3. show subscriber-mgmt wlan-gw gtp-session detail

===============================================================================
GTP sessions
===============================================================================
IMSI                        : 206100000000041
APN                         : full.dotted.apn.mnc010.mcc206.gprs
-------------------------------------------------------------------------------
Mobile Gateway router       : "Base"
Mobile Gateway address      : 5.20.1.2
Remote control TEID         : 1119232
Local control TEID          : 4293918976
Bearer 5 rem TEID           : 1074861061
Bearer 5 loc TEID           : 4293919013
-------------------------------------------------------------------------------
No. of GTP sessions: 1
===============================================================================

12.4.4. show subscriber-mgmt wlan-gw mgw-profile "default"

===============================================================================
WLAN Mobile Gateway profile "default"
===============================================================================
Description                          : (Not Specified)
Retransmit timeout (s)         : 5
Retransmit retries                : 3
Keepalive interval (s)          : 60
Keepalive retries                 : 4
Keepalive retry timeout (s) : 5
Time to live                         : 255
Interface type                      : s2a
Last management change   : 06/28/2012 06:05:30
===============================================================================

12.4.5. show subscriber-mgmt wlan-gw gtp-statistics

=============================================================================
GTP statistics
=============================================================================
tx echo requests                                        : 1
tx echo responses                                       : 0
tx errors                                               : 0
rx echo requests                                        : 0
rx echo responses                                       : 1
rx errors                                               : 0
rx version not supported                                : 0
rx zero TEID responses                                  : 0
path faults                                             : 0
path restarts                                           : 0
tx invalid msgs                                         : 0
tx create PDP context requests                          : 0
tx create PDP context responses                         : 0
tx delete PDP context requests                          : 0
tx delete PDP context responses                         : 0
tx create session requests                              : 1
tx create session responses                             : 0
tx delete session requests                              : 0
tx delete session responses                             : 0
tx delete bearer requests                               : 0
tx delete bearer responses                              : 0
tx error indication count                               : 0
rx invalid msgs                                         : 0
rx create PDP context requests                          : 0
rx create PDP context responses                         : 0
rx delete PDP context requests                          : 0
rx delete PDP context responses                         : 0
rx create session requests                              : 0
rx create session responses                             : 1
rx delete session requests                              : 0
rx delete session responses                             : 0
rx delete bearer requests                               : 0
rx delete bearer responses                              : 0
rx error indication count                               : 0
rx invalid pkt length                                   : 0
rx unknown pkts                                         : 0
rx missing IE pkts                                      : 0
rx bad IP header pkts                                   : 0
rx bad UDP header pkts                                  : 0
============================================================================