> 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 as described in the Verifying and Saving your Configuration chapter.

> 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 full
> The 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 errors
> The 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.

Cisco Systems Inc.
Tel: 408-526-4000
Fax: 408-527-0883