Application awareness helps you use your Cross-Cloud Interconnect connections more efficiently by using differentiated services field codepoint (DSCP) for traffic differentiation.
You can configure traffic differentiation for outbound Cross-Cloud Interconnect data transfers using application awareness on Cloud Interconnect.
Application awareness lets you do the following:
Choose one of two policy types, either a strict priority policy or a bandwidth percentage policy, to classify outbound data transfers into different traffic classes.
Allocate your Cross-Cloud Interconnect outbound data transfer bandwidth among six different traffic classes.
Use traffic shaping controls to set the maximum bandwidth that each traffic class can use on your Cross-Cloud Interconnect outbound data transfers.
The following sections describe application awareness on Cloud Interconnect and how to configure it for your Cross-Cloud Interconnect connection.
Contact your account team to enable application awareness on your Cross-Cloud Interconnect.
Before you begin
Before you begin, do the following:
Understand the best practices when configuring Cloud Interconnect, in particular, for creating redundant Cloud Interconnect connections with sufficient capacity.
Ensure that there is no network traffic on the Cross-Cloud Interconnect connection.
Traffic classes
Application awareness uses the concept of a traffic class, based upon DSCP ranges, to differentiate traffic on Cross-Cloud Interconnect. The following table describes the six traffic classes:
Traffic class | Inner DSCP range | Description |
---|---|---|
TC1 | 000xxx | Lowest priority or best effort traffic |
TC2 | 001xxx | Low priority traffic, such as bulk traffic |
TC3 | 010xxx | Medium priority traffic |
TC4 | 011xxx | High priority traffic, such as streaming or live video |
TC5 | 10xxxx | Critical traffic, such as interactive or user-facing traffic |
TC6 | 11xxxx | Essential network control traffic such as BGP or BFD |
Available policy types
Application awareness on Cloud Interconnect offers two policy types to determine how outbound data transfers are differentiated on your Cloud Interconnect:
- Strict priority
A strict priority policy type assigns a priority level to each traffic class for outbound data transfers. The highest priority outbound data transfers are assigned to traffic class
TC6
, while the lowest priority outbound data transfers are assigned to traffic classTC1
.Strict priority differentiation doesn't require that you specify class-specific configurations because the priority for each traffic class is prespecified. However, to prevent starving lower priority traffic classes during congestion events, we recommend that you specify a traffic shaping profile to limit the maximum bandwidth used by each of your higher priority traffic classes.
- Bandwidth percentage
A bandwidth percentage policy type lets you specify the target bandwidth share that each traffic class can use. Assigning percentages to each traffic class helps ensure that each traffic class can use its specified share of Cloud Interconnect bandwidth during congestion events on your Cloud Interconnect.
If excess bandwidth is available because a traffic class isn't using its assigned share fully, the remaining bandwidth is shared equally among all other traffic classes.
Configure a strict priority policy type
To configure a strict priority policy type, use the REST API to send the
following JSON object to the
interconnects.patch
endpoint
endpoint:
{
"aaiEnabled":true,
"applicationAwareInterconnect":
{
"profileDescription": "DESCRIPTION",
"strictPriorityPolicy":{}
},
}
Replace DESCRIPTION
with a description for this profile.
Optionally, you can configure a strict priority policy type along with a traffic shaping profile. We recommend that you use a traffic shaping profile to help ensure that lower-priority traffic classes aren't starved during congestion events.
To configure a strict priority policy type with a traffic shaping profile, use
the REST API to send the following JSON object to the
interconnects.patch
endpoint
endpoint:
{
"aaiEnabled": true,
"applicationAwareInterconnect":
{
"profileDescription": "DESCRIPTION",
"strictPriorityPolicy": {},
"shapeAveragePercentages": [
{
"trafficClass": "TC1",
"percentage": TC1_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC2",
"percentage": TC2_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC3",
"percentage": TC3_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC4",
"percentage": TC4_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC5",
"percentage": TC5_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC6",
"percentage": TC6_SHAPE_PERCENTAGE
}
]
}
}
}
Replace TC1_SHAPE_PERCENTAGE ... TC6__SHAPE_PERCENTAGE
with a
numerical value representing the maximum bandwidth percentage for each traffic
class. You can define the traffic shaping profile for a subset or all 6 traffic
classes, TC1
through TC6
.
To prevent network failure, ensure that network control traffic, such as BGP and
BFD, are included in the highest strict_policy
priority class.
Configure bandwidth percentage
To configure the bandwidth percentage policy, use the REST API to send
the following JSON object to the
interconnects.patch
endpoint
endpoint:
{
"aaiEnabled": true,
"applicationAwareInterconnect":
{
"profileDescription": "DESCRIPTION",
"bandwidthPercentagePolicy": {
"bandwidthPercentages": [
{
"trafficClass": "TC1",
"percentage": TC1_PERCENTAGE
},
{
"trafficClass": "TC2",
"percentage": TC2_PERCENTAGE
},
{
"trafficClass": "TC3",
"percentage": TC3_PERCENTAGE
},
{
"trafficClass": "TC4",
"percentage": TC4_PERCENTAGE
},
{
"trafficClass": "TC5",
"percentage": TC5_PERCENTAGE
},
{
"trafficClass": "TC6",
"percentage": TC6_PERCENTAGE
}
]
}
}
}
Replace the following:
DESCRIPTION
: a description for this profile.TC1_PERCENTAGE ... TC6_PERCENTAGE
: a nonzero numerical value representing the percentage for each traffic class. The bandwidth percentages for all the traffic classes must sum up to 100.
Optionally, you can configure a bandwidth percentage policy along with a traffic shaping profile. A traffic shaping profile helps you set the maximum bandwidth that each traffic class can consume.
To configure a bandwidth percentage policy with a traffic shaping profile, use
the REST API to send the following JSON object to the
interconnects.patch
endpoint
endpoint:
{
"aaiEnabled": true,
"applicationAwareInterconnect":
{
"profileDescription": "DESCRIPTION",
"bandwidthPercentagePolicy": {
"bandwidthPercentages": [
{
"trafficClass": "TC1",
"percentage": TC1_PERCENTAGE
},
{
"trafficClass": "TC2",
"percentage": TC2_PERCENTAGE
},
{
"trafficClass": "TC3",
"percentage": TC3_PERCENTAGE
},
{
"trafficClass": "TC4",
"percentage": TC4_PERCENTAGE
},
{
"trafficClass": "TC5",
"percentage": TC5_PERCENTAGE
},
{
"trafficClass": "TC6",
"percentage": TC6_PERCENTAGE
}
]
},
"shapeAveragePercentages": [
{
"trafficClass": "TC1",
"percentage": TC1_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC2",
"percentage": TC2_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC3",
"percentage": TC3_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC4",
"percentage": TC4_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC5",
"percentage": TC5_SHAPE_PERCENTAGE
},
{
"trafficClass": "TC6",
"percentage": TC6_SHAPE_PERCENTAGE
}
]
}
}
}
Replace the following:
DESCRIPTION
: a description for this profile.TC1_PERCENTAGE ... TC6_PERCENTAGE
: a numerical value representing the percentage for each traffic class. A nonzero value must be specified for each traffic class, and the bandwidth percentages for all traffic classes must sum up to 100.TC1_SHAPE_PERCENTAGE ... TC6_SHAPE_PERCENTAGE
: a numerical value representing the shape average percentage for each traffic class. Each value must be less than or equal to 100. You can define the traffic shaping profile for a subset or all 6 traffic classes,TC1
throughTC6
.
To prevent network failure, ensure that network control traffic, such as BGP and BFD, are included in the appropriate bandwidth percentage configuration.
Delete traffic differentiation policies
To delete traffic differentiation policies, use the REST API to send
the following JSON object to the
interconnects.patch
endpoint
endpoint:
{
"applicationAwareInterconnect": {}
}
Turn off traffic differentiation
To turn off traffic differentiation, use the REST API to send
the following JSON object to the
interconnects.patch
endpoint
endpoint:
{
"aaiEnabled": false
}