...
-- Current R2 support – single VF module (VNFC) assumption per VNF (to validate) for vCPE - follow up with Kang Xi Xi to validate
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
//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 is normalized to 1 //max value for cpu or memory is 1 if usage is greater than equal to limit "current_allocated_capacity" : //slight modifications from R2 { {"cpu", "memory", "network"}: {""tenant (resource slice)": {"weight": "0.85", "threshold": "0.9" }OpenStack Project or Resource Slice)", }, // 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 ... "cloudOwner" : { "owner": "Azure", "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\"}}" }, } "owner": "OpenStack", "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": ["vGMuxInfravGMux"], //R2 support status – single VF module assumption per VNF "applicableResources": "any", "identity": "distance-vGMuxInfravGMux", "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfravGMux"], "policyType": "AllPolicy" } |
...