# Traffic Performance Optimization Configuration

This chapter describes how to configure Traffic Performance Optimization in-line service.

The following topics are covered in this chapter:

- Before You Begin
- Configuring TPO
- Verifying Your Configuration

Before You Begin

Before you can configure the TPO in-line service:

1. Configure the core network service as described in corresponding administration guide.
2. Configure the active charging service, rule definitions, charging action(s), and rulebase(s) as required. For information refer to the Enhanced Charging Service Administration Guide.

Configuring TPO

This section lists the high-level steps to configure the TPO in-line service.

1. Create and configure TPO profiles as described in the Creating and Configuring TPO Profiles section.
2. Create and configure TPO ruledefs/group-of-ruledefs as described in the Creating and Configuring TPO Ruledefs and Group-of-Ruledefs section.
3. Create and configure TPO policies as described in the Creating and Configuring TPO Policies section.
4. Associate TPO policies to subscribers/APNs as described in the Applying TPO Policies to SubscribersAPNs section.
5. Save your configuration to flash memory, an external memory device, and/or a network location using the Exec mode command save configuration. For additional information on how to verify and save configuration files, refer to the System Administration Guide and the Command Line Interface Reference.

IMPORTANT:

Commands used in the configuration examples in this section provide base functionality to the extent that the most common or likely commands and/or keyword options are presented. In many cases, other optional commands and/or keyword options are available. Refer to the Command Line Interface Reference for complete information regarding all commands.

Creating and Configuring TPO Profiles

This section describes how to create and configure TPO profiles.

Creating TPO Profiles

To create a TPO profile use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          tpo
    profile <tpo_profile_name> [ -noconfirm ]

          end

Notes:

- A maximum of 2048 TPO profiles can be configured in the system.

Configuring TPO Profiles

To configure a TPO profile use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          tpo
    profile <tpo_profile_name>

    #configurations
    for HTTP optimizations:

             http
    ad-filter display { no-text | text-only <text_only_string> | text-with-click <text_with_click_string> }

             http
    params ad-filter display bgcolor <hex_color>

             http compression

             http
    params compression level <compression_level>

             http
    optimize-compressed-page

             http
    prevent-server-compression

             http
    params url-rewrite prefix <url_rewrite_prefix>

             http
    url-rewrite

    #configurations
    for TCP optimizations:

             tcp
    bandwidth { <bandwidth_kbps> | dynamic }

             tcp
    buffer-size { downlink | uplink } <buffer_size_kb>

             tcp
    congestion-control { basic | vegas | westwood-plus }

             tcp
    fast-retransmit-dupacks { <duplicate_acks> | dynamic }

             tcp
    handoff-optimization

             tcp
    initial-window { <initial_window> | dynamic
    bdp-percent <bdp_percent> | rfc5681 }

             tcp
    mss <mss>

             tcp
    pacing

             tcp
    rto { retrans-backoff { 1.0 | 1.5 | 2.0 } | rttvar-scaling <scaling_factor> }

             end

Notes:

- If you enable the URL Rewrite feature using the http url-rewrite command, make sure that a valid DNS client is configured in the destination context as described in the Configuring DNS Client for URL Rewrite Feature section.
- If for the Advertisement Blocking feature you configure the http ad-filter display { no-text | text-only <text_only_string> | text-with-click <text_with_click_string> } command, make sure that in the TPO policy, the match-ad and ad-filter commands are configured.
- The http prevent-server-compression command must only be configured if you want TPO to receive only uncompressed data from the Web server.
- In 12.2 and later releases, the tcp fast-retransmit-dupacks dynamic command specifies to dynamically change the number of duplicate acknowledgements required for fast retransmission based on the number of in-flight packets, and controls the actions taken on D-SACK detection.

Configuring DNS Client for URL Rewrite Feature

To configure DNS client in ISP (destination) context for the HTTP URL Rewrite feature, use the following configuration:

    configure

       context <context_name>

          interface <interface_name>

             ip
    address <ip_address/mask>

             exit

          ip
    domain-lookup

          ip
    name-servers <ip_address>

          dns-client <dns_client_name>

             bind
    address <ip_address>

             round-robin-answers

             end

Creating and Configuring TPO Ruledefs and Group-of-Ruledefs

This section describes how to create and configure TPO ruledefs and TPO group-of-ruledefs.

- Creating and Configuring TPO Ruledefs
- Creating and Configuring TPO Group-of-Ruledefs

Creating and Configuring TPO Ruledefs

To create/configure a TPO ruledef use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          ruledef <tpo_ruledef_name>

             rule-application tpo

             ...

             end

Creating and Configuring TPO Group-of-Ruledefs

To create/configure a TPO group-of-ruledefs use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          group-of-ruledefs <tpo_group_of_ruledefs_name>

             group-of-ruledefs-application tpo

             ...

             end

Notes:

- TPO ruledefs/group-of-ruledefs can be configured only in 12.2 and later releases.
- In 12.2 and later releases, both charging and TPO ruledefs can be used in match-rule and match-ad configurations. However, ruledef/group-of-ruledef statistics will be computed only for TPO ruledefs. Charging ruledefs/group-of-ruledefs are allowed only to provide backward compatibility and statistics are not computed in this case. It is recommended to use TPO ruledefs in TPO policies so that rule statistics will be available.
- If, in a ruledef/group-of-ruledefs the rule-application/group-of-ruledefs-application is not specified, by default the system considers the ruledef/group-of-ruledefs as a charging ruledef/group-of-ruledefs.
- A ruledef and a group-of-ruledefs cannot have the same name.

Creating and Configuring TPO Policies

This section describes how to create and configure a TPO policy.

Creating TPO Policies

To create a TPO policy use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          tpo
    policy <tpo_policy_name> [ -noconfirm ]

          end

Notes:

- A maximum of 2048 TPO policies can be configured in the system.

Configuring TPO Policies

To configure a TPO policy use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          tpo
    policy <tpo_policy_name>

             match-rule
    priority <rule_priority> { tpo-group-of-ruledefs <tpo_group_of_ruledefs_name> | tpo-ruledef <tpo_ruledef_name> } tpo { none | profile <tpo_profile_name> } [ description <description> ]

             match-rule
    no-ruledef-match tpo { none | profile <tpo_profile_name> }

             match-ad
    priority <rule_priority> tpo-ruledef <ecs_ruledef_name>

             ad-filter
    ad-click-identity <bypass_string>

             end

Note:

- The match-ad and ad-filter commands must be configured if the Advertisement Filter feature is to be enabled.
- In 12.2 and later releases, both charging and TPO ruledefs can be used in match-rule and match-ad configurations. However, ruledef/group-of-ruledef statistics will be computed only for TPO ruledefs. Charging ruledefs/group-of-ruledefs are allowed only to provide backward compatibility and statistics are not computed in this case. It is recommended to use TPO ruledefs in TPO policies so that rule statistics will be available.
- If the match-ad command is configured, the ACS ruledef specified must be configured with relevant match conditions. For information on how to create and configure ACS ruledefs, refer to the Enhanced Charging Service Administration Guide.

Configuring TPO Profile in ECS Charging Action

This section describe how to configure a TPO profile within an ECS charging action to enable ECS charging-action based TPO processing.

To configure a TPO profile within an ECS charging action use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          charging-action <charging_action_name>

             tpo
    profile <tpo_profile_name>

             end

Applying TPO Policies to Subscribers/APNs

This section describes how to associate TPO policies with subscribers/APNs.

- Applying TPO Policies to Subscribers
- Applying TPO Policies to APNs

Applying TPO Policies to Subscribers

To associate a TPO policy with subscriber(s) use the following configuration:

    configure

       context <context_name>

          subscriber { default | name <subscriber_name> }

             tpo
    policy <tpo_policy_name>

             end

Applying TPO Policies to APNs

To associate a TPO policy with an APN use the following configuration:

    configure

       context <context_name>

          apn
    name <apn_name>

             tpo
    policy <tpo_policy_name>

             end

Configuring Default TPO Policy for Subscribers

This section describes how to configure the default TPO policy for subscribers using a particular rulebase.

To configure the default TPO policy for subscribers in the rulebase use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          rulebase <rulebase_name>

             tpo
    default-policy <tpo_policy_name>

             end

Notes:

- This TPO policy is used for a subscriber only if no TPO policy to use is received from the AAA/OCS, and there is no TPO policy configured in the subscriber’s APN/subscriber template.

TPO Administration and Other Configurations

This section describes TPO administrative and other procedures.

This section includes the following topics:

- Changing TPO Policy in Mid Session
- DisablingEnabling TPO Optimizations for P2P Flows
- Dynamically Changing TPO Profile for TCP Flows based on RAT Type Change

Changing TPO Policy in Mid Session

To change the TPO policy in mid session use the following command available in the Exec mode:

    update active-charging
    switch-to-tpo-policy <tpo_policy_name> { all | callid <call_id> | imsi <imsi> | ip-address <ip_address> | msid <msid> | tpo-policy <tpo_policy_name> | username <user_name> } [ -noconfirm ] [ | { grep <grep_options> | more } ]

Notes:

- The switch-to-tpo-policy tpo_policy_name option specifies the new TPO policy to apply, and the tpo-policy tpo_policy_name option specifies to apply the new policy to sessions using this TPO policy.
- The CLI indicates the number of sessions for which the policy got switched.
- To be able to change the TPO policy in mid session, TPO must have been enabled for the subscriber in the APN/Subscriber template configuration during call setup.
- The update command takes effect only on current calls. For new calls, the RADIUS returned/APN/subscriber template configured policy is used.

Disabling/Enabling TPO Optimizations for P2P Flows

To disable/continue TPO optimizations when a peer-to-peer (P2P) flow is detected use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          tpo
    profile <tpo_profile_name>

             p2p-detected { cease-tpo | continue-tpo }

             end

Notes:

- In this release, only TPO TCP optimizations are disabled. Disabling HTTP optimizations will be supported in a future release.
- When TPO profiles are switched, if P2P flow is detected, TPO will be ceased/allowed based on the new TPO profile.

Dynamically Changing TPO Profile for TCP Flows based on RAT Type Change

To dynamically change TPO profile for TCP flows based on RAT type change of subscriber, use the following configuration:

    configure

       active-charging
    service <ecs_service_name>

          ruledef <tpo_ruledef_name>

             bearer
    3gpp rat-type = utran

             exit

          tpo
    profile <tpo_profile_name>

             tcp
    congestion-control { basic | vegas | westwood-plus }

             exit

          tpo
    policy <tpo_policy_name>

             match-rule
    priority <priority> tpo-ruledef <tpo_ruledef_name> tpo profile <tpo_profile_name>

             end

Notes:

- Support to dynamically change TPO profile for TCP flows based on RAT Type change is available only in 12.2 and later releases.
- Whenever RAT type for a subscriber changes, TPO profile selection for all data flows for that subscriber will be triggered through match-rule.The profile selection is based on ruledefs configured either as “bearer 3gpp rat-type = <*>” or as “bearer 3gpp rat-type != <*>”.Whenever match-rule is triggered, when RAT type of the subscriber changes, and the new RAT type is UTRAN, the rule with priority <priority> will be hit and the TPO profile <tpo_profile_name> is applied to the flow.

Verifying Your Configuration

This section describes how to verify your TPO configurations.

To verify your configurations, use the following steps:

1. To view TPO profile information, in the Exec Mode, enter one of the following commands:
   - To view information for all TPO profiles use the following command:show active-charging tpo profile statistics all
   - To view detailed information for a specific TPO profile use the following command:show active-charging tpo profile statistics name <tpo_profile_name>
2. To view TPO policy information, in the Exec Mode, enter one of the following commands:
   - To view information for all TPO policies use the following command:show active-charging tpo policy statistics all
   - To view detailed information for a specific TPO policy use the following command:show active-charging tpo policy statistics name <tpo_policy_name>
3. In the Exec Mode, enter the following command:show subscribers tpo { not-required | required }+The output of this command displays access information, call ID, MSID, user name, IP address, and idle time information for the specified subscribers — those with TPO enabled and those without.
4. In the Exec Mode, enter the following command:show subscribers fullThe output of this command indicates the TPO policy configured for the subscriber(s).
5. To view charging/TPO ruledef information, in the Exec mode, enter the following command:show active-charging ruledef { charging | tpo }
6. To view charging/TPO ruledef statistics, in the Exec mode, enter the following command:show active-charging ruledef statistics all { charging | tpo }
7. To detect CLI misconfigurations at runtime, in the Exec mode, enter the following command:show configuration errorsThe output of this command displays TPO CLI configuration errors such as the following: TPO policy configured in the APN is not defined. Default TPO policy configured in the rulebase in not defined. Ruledef/group-of-ruledefs used for match-rule/match-ad should be of application type tpo/charging.