...
-- Current R2 support – single VF module (VDU) assumption per VNF (to validate) - follow up with Kang Xi
Infocode | ||||||
---|---|---|---|---|---|---|
| ||||||
| ||||||
//Support the current simple capacity check API besides the intent-based framework for backward compatibility.
//If a cloud region does not support the policy-based interface, it is given a high net value assuming the current capacity api (yes/no)
//returns an yes. This ensures smooth migration to the new policy-based framework.
{
"service": "cloudPolicy",
"policyName": "oofMulti-cloudCasablanca.cloudPolicy_vCPE_VNF",
"description": "Cloud Policy for vCPE VNF",
"templateVersion": "0.0.1",
"version": "oofMulti-cloudCasablanca",
"priority": "3",
"riskType": "test",
"riskLevel": "2",
"guard": "False",
"content":
{
"cloudOwner" :
{
"owner": "All",
"intent":
{
"name": "Infrastructure High Availability (HA) for VNF",
//realization thru OpenStack-based: anti-affinity, Azure: Fault Domain or
//Availability set rack-level anti-affinity etc. – ETSI (host-level, rack-level, availability zone ...)
}
"intent":
{
"name": "Infrastructure Resource Isolation for VNF",
// realization possible without dedicating CPU and Memory, refer to section on "Cloud Resource Partitioning for Differentiated QoS"
// on how this can help in offering tiered services
"qosProperty":
{
{"Burstable QoS": "TRUE", "Burstable QoS Oversubscription Percentage": "10"}, {"operator", "OR"}, {"Guaranteed QoS": "TRUE"}
}
}
"cloudCapacityUtilizaitonAttributes" :
{
"current_allocated_capacity" : //from R2
{
{"cpu", "memory", "network"}:
{"tenant (resource slice)": {"weight": "0.85", "threshold": "0.9" },
},
// under discussion - elaborate capacity, utilization checks for various objects
//"current_allocated_capacity" :
//{
// {"cpu", "memory", "network"}:
// {"cloud": {"weight": "0.85", "threshold": "0.9"},
// {"tenant (resource slice)": {"weight": "0.85", "threshold": "0.9" },
// {"host aggregate (resource cluster)": {"weight": "0.85", "threshold": "0.9"},
//},
//"average_utilization" : { {"cpu", "memory", "network"}: {"cloud": {"weight": "0.13"}, "tenant (resource slice)": {"weight": "0.13"},
// "host aggregate (resource cluster)": {"weight": "0.13"} }, "time-window": "24", "unit": "hours" },
//"peak_utilization" : { {"cpu", "memory", "network"}: {"cloud": {"weight": "0.02"}, "tenant (resource slice)": {"weight": "0.02"}, "host
// aggregate (resource cluster)": {"weight": "0.02"} }, "time-window": "24", "unit": "hours" }
//current_allocated_capacity, average_utilization and peak_utilization are normalized to 1
//For a given object such as tenant_cpu, sum of weights across all attributes (current_allocated_capacity, average_utilization &
//peak_utilization) must be 1
//E.g. net_value = cloud_cpu_current_allocated_capacity*0.85 + cloud_cpu_average_utilization*0.13 + cloud_cpu_peak_utilization*.02 + ...
//For a given object such as cloud_cpu, if the current_allocated_capacity "threshold" exceeds the specified value, return "high net
//value"
}
}
//use cloud provider in – <cloud region id, cloud provider> – different cloud providers may need different capacities for the same VNF ...
"capacityProperty":
{
//under discussion – "capabilityProperty": {SR_IOV, ...}
//under discussion - host network bandwidth
"controller": "multicloud",
"request": //from R2
"{\"vCPU\": {\"quantity\": {\"get_param\": \"REQUIRED_VCPU\"}, \"Memory\": {\"quantity\": {\"get_param\": \"REQUIRED_MEM\"},
\"unit\": \"GB\"}, \"Storage\": {\"quantity\": {\"get_param\": \"REQUIRED_DISK\"}, \"unit\": \"GB\"}}"
},
}
"resources": ["vGMuxInfra"], //R2 support – single VF module assumption per VNF
"applicableResources": "any",
"identity": "distance-vGMuxInfra",
"policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
"policyType": "AllPolicy"
{
"cloudRegion": { "id": "1", "cloudVendor": "Microsoft Azure", "intent": { "name": "Infrastructure HA for VNF", //realization thru Azure Fault Domain or Availability set "cost": { "value" : "0", "operatorSpecified" : "FALSE" } //Cost is derived based on APIs since it is a public cloud }, "intent": { "name": "Infrastructure Resource Isolation for VNF", //realization through dedicating compute & memory "cost": { "value" : "0", "operatorSpecified" : "FALSE" } //Cost is derived based on APIs since it is a public cloud }, "intent": { "name": "High Performance DPDK-based Overlay Networking", "cost": { "value" : "0", "operatorSpecified" : "FALSE" } //Cost is derived based on APIs since it is a public cloud } }, "cloudRegion": { "id": "2", "cloudVendor": "VMware VIO", "intent": { "name": "Infrastructure HA for VNF", // realization through OpenStack Policy-group and Anti-affinity Policy "cost": { "value" : "10", "operatorSpecified" : "TRUE" } //cost is specified by operator since it is a private cloud }, "intent": { "name": "Infrastructure Resource Isolation for VNF", // realization possible without dedicating CPU and Memory, refer to section on "Cloud Resource Partitioning for Differentiated QoS" on how this can help in offering tiered services "cost": { "value" : "9", "operatorSpecified" : "TRUE" }, //cost is specified by operator since it is a private cloud "minGuarantee": { "capability": "TRUE", "overSubscriptionPercent": {"value": "10"}, } }, "intent": { "name": "High Performance DPDK-based Overlay Networking", "cost": { "value" : "10", "operatorSpecified" : "TRUE" }, //cost is specified by operator since it is a private cloud } "cloudCapacityUtilizaitonAttributes" : { "current_allocated_capacity" : { {"cpu", "memory", "network"}: {"cloud": {"weight": "0.85", "threshold": "0.9"}, "tenant (resource slice)": {"weight": "0.85", "threshold": "0.9" "average_utilization" : { {"cpu", "memory", "network"}: {"cloud": {"weight": "0.13"}, "tenant (resource slice)": {"weight": "0.13"}, "host aggregate (resource cluster)": {"weight": "0.13"} }, "time-window": "24", "unit": "hours" }, "peak_utilization" : { {"cpu", "memory", "network"}: {"cloud": {"weight": "0.02"}, "tenant (resource slice)": {"weight": "0.02"}, "host aggregate (resource cluster)": {"weight": "0.02"} }, "time-window": "24", "unit": "hours" } } //current_allocated_capacity, average_utilization and peak_utilization are normalized to 1 //For a given object such as tenant_cpu, sum of weights across all attributes (current_allocated_capacity, average_utilization & peak_utilization) must be 1 //E.g. net_value = cloud_cpu_current_allocated_capacity*0.85 + cloud_cpu_average_utilization*0.13 + cloud_cpu_peak_utilization*.02 + ... //For a given object such as cloud_cpu, if the current_allocated_capacity "threshold" exceeds the specified value, return "high net value" //For Casablanca (R3), the default policy is adapted to minimum viable attributes and objects across all supported clouds OpenStack-based (Open source OpenStack, VMware VIO, Wind River Titanium), Public (Microsoft Azure), Open source K8S (TBD) }, "cloudRegion": { "id": "3", "cloudVendor": "Wind River Titanium", "intent": { "name": "Infrastructure HA for VNF", // realization through OpenStack Policy-group and Anti-affinity Policy "cost": { "value" : "10", "operatorSpecified" : "TRUE" } //cost is specified by operator since it is a private cloud }, "intent": { "name": "Infrastructure Resource Isolation for VNF", //realization through dedicating compute & memory "cost": { "value" : "10", "operatorSpecified" : "TRUE" }, //cost is specified by operator since it is a private cloud }, "intent": { "name": "High Performance DPDK-based Overlay Networking", "cost": { "value" : "9", "operatorSpecified" : "TRUE" }, //cost is specified by operator since it is a private cloud } }, "cloudRegion": { "id": "4", "cloudVendor": "K8S (Open Source) for Containers", "intent": { "name": "Infrastructure HA for VNF", // realization through nodeSelector – https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity "cost": { "value" : "10", "operatorSpecified" : "TRUE" } //cost is specified by operator since it is a private cloud }, "intent": { "name": "Infrastructure Resource Isolation for VNF", // realization possible without dedicating CPU and Memory, refer to section on "Cloud Resource Partitioning for Differentiated QoS" on how this can help in offering tiered services "cost": { "value" : "9", "operatorSpecified" : "TRUE" }, //cost is specified by operator since it is a private cloud "minGuarantee": { "capability": "TRUE", //realization through burstable QoS class – https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/ "overSubscriptionPercent": {"value": "10"}, } }, "intent": { "name": "High Performance DPDK-based Overlay Networking", //realization through one of the host-based networking options such as vhostuser, VMware NSX-T etc. – https://github.com/containernetworking/cni "cost": { "value" : "10", "operatorSpecified" : "TRUE" }, //cost is specified by operator since it is a private cloud } }, " resources ": [" vGMuxInfra ", " vG "],
} |
Cloud Resource Partitioning for Differentiated QoS (Combined with Previous)
Value:
- Applicable to all use cases
- Casablanca Targets:
- vCPE (Enable Tiered service offering); 5G Network Slicing (Stretch Goal)
...
Edge Automation Requirement:
...