Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagepy
themeDJango
titleR3 HPA Policy example
linenumberstrue
collapsetrue
#
#Example 1: vFW, Basic Capability and pciePassthough
#one VNFC(VFC) with one basic capability requirement and two pciePassthrough requirements.
#
{
  "service": "hpaPolicy",
  "policyName": "oofCasablanca.hpaPolicy_vFW",
  "description": "HPA policy for vFW",
  "templateVersion": "0.0.1",
  "version": "1.0",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
  "guard": "False",
  "content": {
    "resources": "vFW",
    "identity": "hpaPolicy_vFW",
    "policyScope": ["vFW", "US", "INTERNATIONAL", "ip", "vFW"],
    "policyType": "hpaPolicy",
    "flavorFeatures": [
      {
        "id" : "<vdu.Name>",
        "type":"vnfc/tocsa.nodes.nfv.Vdu.Compute",
        "directives":[  
           {  
             "directive_name":"flavor",
             "attributes":[  
                {  
                  "attribute_name":" oof_returned_flavor_label_for_firewall ", //Admin needs to ensure that this value is same as flavor parameter in HOT 
                  "attribute_value": "<Blank>" 
                } 
               ]
           }
          ],
        "flavorProperties": [
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "6", "operator": "=", "unit": "" }
            ]
          },
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "6", "operator": "=", "unit": "GB" },
            ]
          },
        ]  {
    }     ]   }
}

#
#Example 2: vFW, Pcie Passthrough
#one VNFC(VFC) with two Pcie Passthrough requirements
#
{"hpa-feature": "pciePassthrough",
            "servicemandatory": "hpaPolicyTrue",
  "policyName": "oofCasablanca.hpaPolicy_vFW",   "description": "HPA policy for vFW",
  "templateVersionarchitecture": "0.0.1generic",
    "version": "1.0",   "priority": "3",   "riskTypedirectives" : "test",[
     "riskLevel": "2",   "guard": "False",   "content": {
    "resources": "vFW",            "identitydirective_name": "hpaPolicypciePassthrough_vFWdirective",
     "policyScope": ["vFW", "US", "INTERNATIONAL", "ip", "vFW"],           "policyTypeattributes": "hpaPolicy",
[
   "flavorFeatures": [       {        { "idattribute_name" : "<vdu.Name>",oof_returned_vnic_type_for_firewall_protected",
                     "typeattribute_value":"vnfc/tocsa.nodes.nfv.Vdu.Compute", "direct"
          "directives":[         },
    {               { "directiveattribute_name":"flavor "oof_returned_provider_network_for_firewall_protected",
             "attributes":[                   {  
                  "attribute_namevalue":" oof_returned_flavor_label_for_firewall ", //Admin needs to ensure that this value is same as flavor parameter in HOT "physnet1"
                   }
             "attribute_value": "<Blank>"  ]
               } 
  
            ],
           }
  "hpa-feature-attributes": [
        ],      { "hpa-attribute-key": "pciVendorId", "flavorPropertieshpa-attribute-value": [
    "1234", "operator": "=", "unit": "" },
     {         {    "hpa-featureattribute-key": "pciePassthroughpciDeviceId", "hpa-attribute-value": "5678", "operator": "=", "unit": "" },
     "mandatory": "True",        { "hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "architectureoperator": "generic>=", "unit": "" }
         "directives" : [   ]
          },
      {    {
            "directive_namehpa-feature": "pciePassthrough_directive",
            "mandatory": "True",
    "attributes": [       "architecture": "generic",
           { "attribute_namedirectives" : "oof_returned_vnic_type_for_firewall_protected", [
              {
                "directive_name": "pciePassthrough_directive",
                "attributes": [
                   { "attribute_name": "oof_returned_vnic_type_for_firewall_unprotected",
                     "attribute_value": "direct"
                   },
                   { "attribute_name": "oof_returned_provider_network_for_firewall_protectedunprotected",
                     "attribute_value": "physnet1physnet2"
                   }
                ]
              }
            ],
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "pciVendorId", "hpa-attribute-value": "12343333", "operator": "=", "unit": "" },
              { "hpa-attribute-key": "pciDeviceId", "hpa-attribute-value": "56787777", "operator": "=", "unit": "" },
              { "hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": "" }
            ]
          },
        ]
 {     }
    ]
  "hpa-feature": "pciePassthrough",}
}

#
#Example 2: vFW, basicCapabilities, hugePages, pciePassthrough, cpuPinning.
#one VNFC(VFC)  "mandatory": "True"with basic capablity requirements, cpuPinning requirement and huge page requirement.
#the other VNFC(VFC) with basic capability "architecture": "generic",
   requirements and pciepassthrough requirements.
#
{
     "service": "hpaPolicy",
  "directivespolicyName" : ["oofCasablanca.hpaPolicy_vFW",
  "description": "HPA policy for vFW",
  "templateVersion": "0.0.1",
   {"version": "1.0",
  "priority": "3",
  "riskType": "test",
     "riskLevel": "2",
  "directive_nameguard": "pciePassthrough_directiveFalse",
  "content": {
    "resources": "vFW",
      "attributesidentity": ["hpaPolicy_vFW",
    "policyScope": ["vFW", "US", "INTERNATIONAL", "ip", "vFW"],
    "policyType": "hpaPolicy",
   { "attribute_nameflavorFeatures": "oof_returned_vnic_type_for_firewall_unprotected",
  [
      {
        "id" : "<vdu.Name>",
        "attribute_valuetype": "direct""vnfc/tocsa.nodes.nfv.Vdu.Compute",
        "directives":[  
        }   {  
              { "attributedirective_name": "oof_returned_provider_for_firewall_unprotected"flavor",
             "attributes":[  
                {  
                  "attribute_valuename":" "physnet2"
             oof_returned_flavor_label_for_firewall ", //Admin needs to ensure that this value is same as flavor parameter in HOT 
    }              "attribute_value": "<Blank>" 
]                } 
               ],
            "hpa-feature-attributes": [}
          ],
       { "hpa-attribute-keyflavorProperties": "pciVendorId", "hpa-attribute-value": "3333", "operator": "=", "unit": "" },
  [
          {
           { "hpa-attribute-keyfeature": "pciDeviceIdbasicCapabilities",
     "hpa-attribute-value       "mandatory": "7777True",
            "operatorarchitecture": "=generic",
"unit            "hpa-feature-attributes": ""[
},               { "hpa-attribute-key": "pciCountnumVirtualCpu", "hpa-attribute-value": "16", "operator": ">=", "unit": "" }
            ]
          },
        ]  {
       }     ]
"hpa-feature": "basicCapabilities",
 } }   
Code Block
languagepy
themeEmacs
titleR3 Cloud Agnostic Policy Example
linenumberstrue
collapsetrue
# #Example 1: vCPE vgw, Burstable QoS #vCPE: Infrastructure Resource Isolation for VNF with Burstable QoS
#
{"mandatory": "True",
            "servicearchitecture": "cloudPolicygeneric",
  "policyName": "oofCasablanca.cloudPolicy_vgw",          "descriptionhpa-feature-attributes": "Cloud[
  policy for vgw",   "templateVersion": "0.0.1",   "version": "1.0",  { "priorityhpa-attribute-key": "3virtualMemSize",   "riskType"hpa-attribute-value": "test6",   "riskLeveloperator": "2=",
  "guardunit": "FalseGB", }
  "content": {     "resources": "vgw",   ]
 "identity": "cloudPolicy_vgw",     "policyScope": ["vgw", "US", "INTERNATIONAL" },
"ip", "vgw"],     "policyType": "hpaPolicy",    {
            "flavorFeatureshpa-feature": ["pciePassthrough",
      {         "idmandatory" : "<vdu.Name>True",
            "typearchitecture":"vnfc/tocsa.nodes.nfv.Vdu.Compute "generic",
            "directives" : [
              {
                "directive_name": "flavorpciePassthrough_directive",
                "attributes": [
                   {  
                  "attribute_name": " oof_returned_flavorvnic_labeltype_for_firewall_vgw ", //Admin needs to ensure that this value is same as flavor parameter in HOTprotected",
                      "attribute_value": "<Blank>direct"
                 }  },
              ]     { "attribute_name": "oof_returned_provider_network_for_firewall_protected",
    }                 "attribute_value": "physnet1"
 ],         "flavorProperties": [        }
  {             "hpa-feature": "basicCapabilities", ]
            "mandatory": "True", }
           "architecture": "generic",  ],
            "hpa-feature-attributes": [
              { "hpa-attribute-key":"Infrastructure Resource Isolation for VNF "pciVendorId", "hpa-attribute-value": "Burstable QoS1234", "operator": "=", "unit": "" },
			
              { "hpa-attribute-key":"Burstable QoS Oversubscription Percentage "pciDeviceId", "hpa-attribute-value": "255678", "operator": "=", "unit": "" },
            ]  { "hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": "" },
        ]    ]
  }     ]   },
}   # #Example 2: vCPE vgw, Guaranteed QoS #vCPE:{
Infrastructure Resource Isolation for VNF with Guaranteed QoS # {   "servicehpa-feature": "cloudPolicypciePassthrough",
  "policyName": "oofCasablanca.cloudPolicy_vgw",   "description": "Cloud policy for vgw",   "templateVersionmandatory": "0.0.1True",
  "version": "1.0",      "priority": "3",   "riskTypearchitecture": "testgeneric",
    "riskLevel": "2",   "guard": "False",   "contentdirectives" : {[
      "resources": "vgw",     "identity": "cloudPolicy_vgw",  {
      "policyScope": ["vgw", "US", "INTERNATIONAL", "ip", "vgw"],     "policyTypedirective_name": "hpaPolicypciePassthrough_directive",
    "flavorFeatures": [       {    "attributes": [
   "id" : "<vdu.Name>",         "type":"vnfc/tocsa.nodes.nfv.Vdu.Compute",     {    "directives"attribute_name":[  
  "oof_returned_vnic_type_for_firewall_unprotected",
         {                "directiveattribute_namevalue": "flavordirect",
   
         "attributes":[           }
       {                     { "attribute_name": " oof_returned_flavorprovider_labelfor_forfirewall_vgw unprotected",
//Admin needs to ensure that this value is same as flavor parameter in HOT                    "attribute_value": "<Blank>physnet2"
                   }
                ]
           }   }
        ],    ],
    "flavorProperties": [       "hpa-feature-attributes": [
  {            { "hpa-featureattribute-key": "basicCapabilitiespciVendorId",
            "mandatory"hpa-attribute-value": "True3333",
            "architectureoperator": "generic=", 

            "hpa-feature-attributes": ["unit": "" },
              { "hpa-attribute-key":"Infrastructure Resource Isolation for VNF "pciDeviceId", "hpa-attribute-value": "Guaranteed QoS7777", "operator": "=", "unit": "" },
            ]  { "hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": "" },
        ]    ]
  }     ]   }
}  # #Example 3: vDNS, Burstable QoS &]
Infra HA #vDNS: Infrastructure Resource Isolation for},
VNF with Burstable QoS & Infrastructure HA{
# {   "service": "cloudPolicy",   "policyNameid" : "oofCasablanca<vdu.cloudPolicy_vdnsName>",
  "description": "Cloud policy for vdns",   "templateVersiontype": "0.0.1","vnfc/tocsa.nodes.nfv.Vdu.Compute",
   "version": "1.0",     "prioritydirectives": "3",[  
   "riskType": "test",   "riskLevel": "2",   "guard": "False",{  
 "content": {     "resources": "vdns",     "identitydirective_name": "cloudPolicy_vdnsflavor",
    "policyScope": ["vgw", "US", "INTERNATIONAL", "ip", "vdns"],         "attributes":[  
  "policyType": "hpaPolicy",     "flavorFeatures": [       {  
      "id"  : "<vdu.Name>",         "typeattribute_name":"vnfc/tocsa.nodes.nfv.Vdu.Compute oof_returned_flavor_label_for_generator ", //Admin needs to ensure that this value is "directives":[same as flavor parameter in HOT 
       {                "directiveattribute_namevalue": "flavor<Blank>", 
              "attributes":[  } 
               {]
           }
        "attribute_name":" oof_returned_flavor_label_for_vdns " ],
//Admin needs to ensure that this value is same as flavor parameter in HOT"flavorProperties": [
          {
            "attribute_valuehpa-feature": "<Blank>basicCapabilities",
            "mandatory": "True",
    }        "architecture": "generic",
       ]     "hpa-feature-attributes": [
     }         {  ],
        "flavorProperties": [
    "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "6", "operator": "=", "unit": "" }
            ]
          },
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
              "hpa-feature-attributes": [
              { "hpa-attribute-key":"Infrastructure Resource Isolation for VNF "virtualMemSize", "hpa-attribute-value": "Burstable QoS6", "operator": "=", "unit": "GB"}, 			  {"hpa-attribute-key":"Burstable QoS Oversubscription Percentage", "hpa-attribute-value": "25","operator": "=", "unit": ""},
            ]
          },
          {
            "hpa-feature": "basicCapabilitiescpuPinning",
            "mandatory": "True",
            "architecture": "generic",
              "hpa-feature-attributes": [
			  {"hpa-attribute-
              { "hpa-attribute-key":"Infrastructure High Availability for VNF "logicalCpuThreadPinningPolicy", "hpa-attribute-value": "prefer", "operator": "=", "unit": "" },
            ]
          },
        ]  {
    }     ]   }
}"hpa-feature": "cpuPinning",
 # #Example 4: vDNS, Guaranteed QoS & Infra HA #vDNS: Infrastructure Resource Isolation for VNF with Burstable QoS & Infrastructure HA
#
{"mandatory": "True",
            "servicearchitecture": "cloudPolicygeneric",
            "policyNamehpa-feature-attributes": "oofCasablanca.cloudPolicy_vdns", [
    "description": "Cloud policy for vdns",   "templateVersion": "0.0.1",  { "versionhpa-attribute-key": "1.0logicalCpuPinningPolicy",   "priority"hpa-attribute-value": "3dedicated",   "riskTypeoperator": "test=",   "riskLevelunit": "2", }
 "guard": "False",   "content": {     "resources": "vdns", ]
    "identity": "cloudPolicy_vdns",     "policyScope": ["vgw"},
"US", "INTERNATIONAL", "ip", "vdns"],     "policyType": "hpaPolicy",     "flavorFeatures": [
{
     {         "idhpa-feature" : "<vdu.Name>hugePages",
            "typemandatory":"vnfc/tocsa.nodes.nfv.Vdu.Compute", "True",
            "directivesarchitecture":[ "generic",
            { "hpa-feature-attributes": [
              "directive_name{ "hpa-attribute-key": "flavormemoryPageSize", "hpa-attribute-value": "2", "operator": "=", "unit": "GB" }
      "attributes":[      ]
          }
 {       ]
      }
    ]
 "attribute_name":" oof_returned_flavor_label_for_vdns ", //Admin needs to ensure that this value is same as flavor parameter in HOT 
                  "attribute_value": "<Blank>" 
                } 
               ]
           }
          ],
        "flavorProperties }
}


Code Block
languagepy
themeEmacs
titleR3 Cloud Agnostic Policy Example
linenumberstrue
collapsetrue
#
#Example 1: vCPE vgw, Burstable QoS
#vCPE: Infrastructure Resource Isolation for VNF with Burstable QoS
#
{
  "service": "cloudPolicy",
  "policyName": "oofCasablanca.cloudPolicy_vgw",
  "description": "Cloud policy for vgw",
  "templateVersion": "0.0.1",
  "version": "1.0",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
  "guard": "False",
  "content": {
    "resources": "vgw",
    "identity": "cloudPolicy_vgw",
    "policyScope": ["vgw", "US", "INTERNATIONAL", "ip", "vgw"],
    "policyType": "hpaPolicy",
    "flavorFeatures": [
          {
 
          "hpa-featureid" : "basicCapabilities<vdu.Name>",
            "mandatorytype": "True"vnfc/tocsa.nodes.nfv.Vdu.Compute",
            "architecturedirectives":[ "generic", 
             "hpa-feature-attributes": [{  
             {"hpa-attribute-key"directive_name":"Infrastructure Resource Isolation for VNFflavor",
"hpa-attribute-value": "Guaranteed QoS","operator": "=", "unit": ""},        "attributes":[  
  ]           },   {  
     {             "hpa-featureattribute_name": "basicCapabilities",
            "mandatory": "True", oof_returned_flavor_label_for_vgw ", //Admin needs to ensure that this value is same as flavor parameter in HOT 
                  "architectureattribute_value": "generic",<Blank>" 
                } 
 "hpa-feature-attributes": [ 			  {"hpa-attribute-key":"Infrastructure High Availability for VNF", "hpa-attribute-value": "","operator": "", "unit": ""}, ]
           ]}
          },],
        "flavorProperties": [
     ]     {
 }     ]   } }

Code Block
languagepy
themeEmacs
titleR3 HPA & Cloud Agnostic Policy Example
linenumberstrue
collapsetrue
#
#Example 1: vFW, Basic Capability + Cloud Agnostic Guaranteed QoS
#one VNFC(VFC) with one basic capability requirement
#
{
  "service": "hpaPolicy  "hpa-feature": "basicCapabilities",
            "mandatory": "True",
  "policyName": "oofCasablanca.hpaPolicy_vFW",   "description": "HPA policy for vFW",   "templateVersionarchitecture": "0.0.1generic", 
    "version": "1.0",   "priority": "3",   "riskTypehpa-feature-attributes": "test",[
  "riskLevel": "2",   "guard": "False",   "content    {"hpa-attribute-key":"Infrastructure {Resource Isolation for VNF", "hpa-attribute-value": "Burstable QoS"resources,"operator": "vFW=",     "identityunit": "hpaPolicy_vFW"},
			    "policyScope": ["vFW", "US", "INTERNATIONAL", "ip", "vFW"],
    "policyType": "hpaPolicy"{"hpa-attribute-key":"Burstable QoS Oversubscription Percentage", "hpa-attribute-value": "25","operator": "=", "unit": ""},
    "flavorFeatures": [       {]
        "id" : "<vdu.Name>"},
        "type":"vnfc/tocsa.nodes.nfv.Vdu.Compute",]
      }
 "directives":[   ]
  }
}

#
#Example 2: vCPE vgw, {Guaranteed QoS
#vCPE: Infrastructure Resource Isolation for VNF with Guaranteed QoS
#
{
   "directive_nameservice": "flavorcloudPolicy",
  "policyName": "oofCasablanca.cloudPolicy_vgw",
  "description": "Cloud policy for vgw",
  "attributestemplateVersion":[  "0.0.1",
  "version": "1.0",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
 { "guard": "False",
  "content": {
        "resources": "vgw",
     "attribute_nameidentity": " oof_returned_flavor_label_for_firewall cloudPolicy_vgw",
//Admin needs to ensure that this value is same as flavor parameter in HOT 
   "policyScope": ["vgw", "US", "INTERNATIONAL", "ip", "vgw"],
    "policyType": "hpaPolicy",
    "flavorFeatures": [
      {
        "attribute_valueid" : "<Blank><vdu.Name>",
        "type":"vnfc/tocsa.nodes.nfv.Vdu.Compute",
        }"directives":[  
             { ] 
          }   "directive_name":"flavor",
       ],         "flavorPropertiesattributes":[ [ 
         {       {  
   "hpa-feature": "basicCapabilities",               "mandatoryattribute_name": "True" oof_returned_flavor_label_for_vgw ", //Admin needs to ensure that this value is same as flavor parameter "architecturein HOT 
                  "attribute_value": "generic",<Blank>" 
                } 
"hpa-feature-attributes": [              ]
{ "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "6", "operator": "=", "unit": "" },  }
          ],
        "flavorProperties": [
},           {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic", 

            "hpa-feature-attributes": [
              { "hpa-attribute-key": "virtualMemSize"Infrastructure Resource Isolation for VNF", "hpa-attribute-value": "6Guaranteed QoS", "operator": "=", "unit": "GB" },
            ]
          },
        ]
 {     }
    ]
  "hpa-feature": "basicCapabilities",}
}

#
#Example 3: vDNS, Burstable QoS & Infra HA
#vDNS: Infrastructure "mandatory": "True",
         Resource Isolation for VNF with Burstable QoS & Infrastructure HA
#
{
  "architectureservice": "genericcloudPolicy",
     "policyName": "oofCasablanca.cloudPolicy_vdns",
      "hpa-feature-attributes"description": ["Cloud policy for vdns",
  "templateVersion": "0.0.1",
  "version": "1.0",
   {"hpa-attribute-key"priority": "Infrastructure3",
Resource Isolation for VNF", "hpa-attribute-value"riskType": "Guaranteed QoStest",
  "operatorriskLevel": "=2",
  "unitguard": "False"},
  "content": {
    "resources": "vdns",
  ]  "identity": "cloudPolicy_vdns",
    "policyScope": ["vgw", "US",  }"INTERNATIONAL", "ip", "vdns"],
    "policyType": "hpaPolicy",
  ]  "flavorFeatures": [
   }   {
 ]   } }  # #Example"id" 2: vFW, Pcie Passthrough
#one VNFC(VFC) with two Pcie Passthrough requirements
#
{"<vdu.Name>",
        "servicetype": "hpaPolicy"vnfc/tocsa.nodes.nfv.Vdu.Compute",
  "policyName": "oofCasablanca.hpaPolicy_vFW",      "descriptiondirectives":[ "HPA 
 policy for vFW",   "templateVersion": "0.0.1",     "version": "1.0",{  
 "priority": "3",   "riskType": "test",   "riskLevel": "2",   "guarddirective_name": "Falseflavor",
  "content": {     "resources": "vFW",     "identityattributes": "hpaPolicy_vFW",[  
    "policyScope": ["vFW", "US", "INTERNATIONAL", "ip", "vFW"],     "policyType": "hpaPolicy", {  
 "flavorFeatures": [       {         "attribute_name"id:" : "<vdu.Name>oof_returned_flavor_label_for_vdns ", //Admin needs to ensure that this value  "type":"vnfc/tocsa.nodes.nfv.Vdu.Compute",
        "directives":[is same as flavor parameter in HOT 
             {                "directive_name"attribute_value": "flavor<Blank>", 
              "attributes":[  } 
               {]
           }
        "attribute_name":" oof_returned_flavor_label_for_firewall " ],
//Admin needs to ensure that this value is same as flavor parameter in HOT"flavorProperties": [
          {
            "attribute_valuehpa-feature": "<Blank>basicCapabilities",
            "mandatory": "True",
   }         "architecture": "generic", 

    ]        "hpa-feature-attributes": [
  }           ],
        "flavorProperties": [
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [

               {"hpa-attribute-key":"Infrastructure Resource Isolation for VNF", "hpa-attribute-value": "Burstable QoS","operator": "=", "unit": ""},
			  {"hpa-attribute-key":"InfrastructureBurstable ResourceQoS IsolationOversubscription for VNFPercentage", "hpa-attribute-value": "Guaranteed QoS25","operator": "=", "unit": ""},
            ]
          },
          {
         {             "hpa"hpa-feature": "pciePassthroughbasicCapabilities",
            "mandatory": "True",
            "architecture": "generic", 

          "directives"   "hpa-feature-attributes": [
			  {"hpa-attribute-key":"Infrastructure High Availability for VNF", "hpa-attribute-value": "","operator": "", "unit": ""},
  {          ]
      "directive_name": "pciePassthrough_directive",   },
        ]
    "attributes": [ }
    ]
  }
}

#
       { "attribute_name": "oof_returned_vnic_type_for_firewall_protected",
                     "attribute_value": "direct"
                   },
                   { "attribute_name": "oof_returned_provider_network_for_firewall_protected",
                     "attribute_value": "physnet1"
                   }
     #Example 4: vDNS, Guaranteed QoS & Infra HA
#vDNS: Infrastructure Resource Isolation for VNF with Burstable QoS & Infrastructure HA
#
{
  "service": "cloudPolicy",
  "policyName": "oofCasablanca.cloudPolicy_vdns",
  "description": "Cloud policy for vdns",
  "templateVersion": "0.0.1",
  "version": "1.0",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
  "guard": "False",
  "content": {
    "resources": "vdns",
    "identity": "cloudPolicy_vdns",
    "policyScope": ["vgw", "US", "INTERNATIONAL", "ip", "vdns"],
    "policyType": "hpaPolicy",
    "flavorFeatures": [
      {
        "id" : "<vdu.Name>",
        "type":"vnfc/tocsa.nodes.nfv.Vdu.Compute",
        "directives":[  ]
           {  
}             ]"directive_name":"flavor",
             "hpa-feature-attributes": [  
            { "hpa-attribute-key": "pciVendorId", "hpa-attribute-value": "1234", "operator": "=", "unit": "" }, {  
                 { "hpa-attribute-key_name": "pciDeviceId", "hpa-attribute-value": "5678", "operator": "=", "unit": "" }, oof_returned_flavor_label_for_vdns ", //Admin needs to ensure that this value is same as flavor parameter in HOT 
               { "hpa-attribute-key": "pciCount", "hpa-attribute-_value": "1<Blank>", "operator":
">=", "unit": "" }             ]} 
         },      ]
    {       }
     "hpa-feature": "pciePassthrough",    ],
        "mandatoryflavorProperties": "True", [
          {
            "architecturehpa-feature": "genericbasicCapabilities",
            "directivesmandatory" : ["True",
              {
                "directive_name"architecture": "pciePassthrough_directivegeneric",
 

             "hpa-feature-attributes": [
              {"hpa-attribute-key":"Infrastructure Resource Isolation for VNF",  { "attribute_name"hpa-attribute-value": "Guaranteed QoS","operator": "oof_returned_vnic_type_for_firewall_unprotected=", "unit": ""},
            ]
      "attribute_value": "direct"   },
          {
     }       "hpa-feature": "basicCapabilities",
           { "attribute_namemandatory": "oof_returned_provider_for_firewall_unprotectedTrue",
            "architecture": "generic", 

     "attribute_value": "physnet2"      "hpa-feature-attributes": [
			  {"hpa-attribute-key":"Infrastructure High Availability for VNF", "hpa-attribute-value": "","operator": "",   }"unit": ""},
            ]
   ]       },
       } ]
      }
    ],
  }
}

Code Block
languagepy
themeEmacs
titleR3 HPA & Cloud Agnostic Policy Example
linenumberstrue
collapsetrue
#
#Example 1: vFW, Basic Capability  "hpa-feature-attributes": [
              { "hpa-attribute-key+ PciePassthrough + Cloud Agnostic Guaranteed QoS
#one VNFC(VFC) with one basic capability requirement
#
{
  "service": "pciVendorIdhpaPolicy",
"hpa-attribute-value  "policyName": "3333oofCasablanca.hpaPolicy_vFW",
  "operatordescription": "=HPA policy for vFW",
  "unittemplateVersion": "0.0.1" },
      "version": "1.0",
       { "hpa-attribute-key"priority": "pciDeviceId3",
  "hpa-attribute-valueriskType": "7777test",
  "operatorriskLevel": "=2",
  "unitguard": "False" },
  "content": {
      "resources": "vFW",
   { "hpa-attribute-keyidentity": "pciCounthpaPolicy_vFW",
"hpa-attribute-value    "policyScope": ["1vFW", "operatorUS":, ">=INTERNATIONAL", "unitip":, "vFW" }],
    "policyType": "hpaPolicy",
    "flavorFeatures": [
      {
        "id" : "<vdu.Name>",
      ]  "type":"vnfc/tocsa.nodes.nfv.Vdu.Compute",
        }"directives":[  
        ]   {  
 }      ]   } }

HAS Homing Response after changes

Accordingly, the data structure 'directives' will also be added inside OOF HAS response. Since currently the pcie_directives can be get from either Policy or AAI,  HAS still need to process the pcie_directives.

[

{
  "directive_name":"flavor",
             "attributes":[  
                {  
                  "attribute_name":"
vnic-type", "attribute_value": "direct"},{"attribute_name": "physical-network",
 oof_returned_flavor_label_for_firewall ", //Admin needs to ensure that this value is same as flavor parameter in HOT 
                  "attribute_value": "
physnet2"},

]

Expand
titleSample directive data in AAI
Code Block
languagejs
themeDJango
titleHAS Homing response (JSON)
linenumberstrue
collapsetrue

hpa-feature=”pciePassthrough”,

architecture=”{hw_arch}",

version=”v1”,

Hpa-attribute-key

Hpa-attribute-value

pciVendorId

2345

pciDeviceId

6789

pciCount

1

directive

'id' and 'type' will help VF-C to filter one VDU(VNFC in HEAT accordingly), and attributes inside will be used to pass down values of SRIOV NIC information. 

In order to make the response more generic and extensible, all the attributes added will be add inside that 'directive' data block.  Please find the sample below for vG.

Status - Done

{
  "plans": [
    {
      "status": "done",
      "id": "plan_id",
      "name": "Plan Name 1",
      "links": [
        [<Blank>" 
                } 
               ]
           }
          ],
        "flavorProperties": [
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "6", "operator": "=", "unit": "" }
            ]
          },
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "6", "operator": "=", "unit": "GB" }
            ]
          },
          {
            "hpa-feature": "pciePassthrough",
            "mandatory": "True",
            "architecture": "generic",
            "directives" : [
              {
                "directive_name": "pciePassthrough_directive",
                "attributes": [
                   { "attribute_name": "oof_returned_vnic_type_for_firewall_protected",
                     "attribute_value": "direct"
                   },
                   { "attribute_name": "oof_returned_provider_network_for_firewall_protected",
                     "attribute_value": "physnet1"
                   }
                ]
              }
            ],
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "pciVendorId", "hpa-attribute-value": "1234", "operator": "=", "unit": "" },
              { "hpa-attribute-key": "pciDeviceId", "hpa-attribute-value": "5678", "operator": "=", "unit": "" },
              { "hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": "" }
            ]
          },
          {
            "hpa-feature": "pciePassthrough",
            "mandatory": "True",
            "architecture": "generic",
            "directives" : [
              {
                "directive_name": "pciePassthrough_directive",
                "attributes": [
                   { "attribute_name": "oof_returned_vnic_type_for_firewall_unprotected",
                     "attribute_value": "direct"
                   }
                   { "attribute_name": "oof_returned_provider_for_firewall_unprotected",
                     "attribute_value": "physnet2"
                   }
                ]
              }
            ],
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "pciVendorId", "hpa-attribute-value": "3333", "operator": "=", "unit": "" },
              { "hpa-attribute-key": "pciDeviceId", "hpa-attribute-value": "7777", "operator": "=", "unit": "" },
              { "hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": "" }
            ]
          },
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              {"hpa-attribute-key":"Infrastructure Resource Isolation for VNF", "hpa-attribute-value": "Guaranteed QoS","operator": "=", "unit": ""},
            ]
          }
        ]
      }
    ]
  }
}

#
#Example two: vFW, basicCapabilities, hugePages, pciePassthrough, cpuPinning.
#one VNFC(VFC) with basic capablity requirements, cpuPinning requirement and huge page requirement.
#the other VNFC(VFC) with basic capability requirements and pciepassthrough requirements.
#
{
  "service": "hpaPolicy",
  "policyName": "oofCasablanca.hpaPolicy_vFW",
  "description": "HPA policy for vFW",
  "templateVersion": "0.0.1",
  "version": "1.0",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
  "guard": "False",
  "content": {
    "resources": "vFW",
    "identity": "hpaPolicy_vFW",
    "policyScope": ["vFW", "US", "INTERNATIONAL", "ip", "vFW" ],
    "policyType": "hpaPolicy",
    "flavorFeatures": [
      {
        "id": "<vdu.Name>",
        "type": "vnfc/tocsa.nodes.nfv.Vdu.Compute",
        "directives": [
          {
            "directive_name": "flavor",
            "attributes": [
              {
                "attribute_name": " oof_returned_flavor_label_for_firewall ",
                "attribute_value": "<Blank>"
              }
            ]
          }
        ],
        "flavorProperties": [
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              {"hpa-attribute-key": "Infrastructure Resource Isolation for VNF", "hpa-attribute-value": "Guaranteed QoS", "operator": "=", "unit": ""}
            ]
          },
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "6", "operator": "=", "unit": "" }
            ]
          },
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "6", "operator": "=", "unit": "GB" }
            ]
          },
          {
            "hpa-feature": "pciePassthrough",
            "mandatory": "True",
            "architecture": "generic",
            "directives": [
              {
                "directive_name": "pciePassthrough_directive",
                "attributes": [
                  {
                    "attribute_name": "oof_returned_vnic_type_for_firewall_protected",
                    "attribute_value": "direct"
                  },
                  {
                    "attribute_name": "oof_returned_provider_network_for_firewall_protected",
                    "attribute_value": "physnet1"
                  }
                ]
              }
            ],
            "hpa-feature-attributes": [
              {"hpa-attribute-key": "pciVendorId", "hpa-attribute-value": "1234", "operator": "=", "unit": ""},
              {"hpa-attribute-key": "pciDeviceId", "hpa-attribute-value": "5678", "operator": "=", "unit": ""},
              {"hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": ""}
            ]
          },
          {
            "hpa-feature": "pciePassthrough",
            "mandatory": "True",
            "architecture": "generic",
            "directives": [
              {
                "directive_name": "pciePassthrough_directive",
                "attributes": [
                  {
                    "attribute_name": "oof_returned_vnic_type_for_firewall_unprotected",
                    "attribute_value": "direct"
                  },
                  {
                    "attribute_name": "oof_returned_provider_for_firewall_unprotected",
                    "attribute_value": "physnet2"
                  }
                ]
              }
            ],
            "hpa-feature-attributes": [
              {"hpa-attribute-key": "pciVendorId", "hpa-attribute-value": "3333", "operator": "=", "unit": ""},
              {"hpa-attribute-key": "pciDeviceId", "hpa-attribute-value": "7777", "operator": "=", "unit": ""},
              {"hpa-attribute-key": "pciCount", "hpa-attribute-value": "1", "operator": ">=", "unit": ""}
            ]
          }
        ]
      },
      {
        "id": "<vdu.Name>",
        "type": "vnfc/tocsa.nodes.nfv.Vdu.Compute",
        "directives": [
          {
            "directive_name": "flavor",
            "attributes": [
              {
                "attribute_name": " oof_returned_flavor_label_for_generator ",
                "attribute_value": "<Blank>"
              }
            ]
          }
        ],
        "flavorProperties": [
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              {"hpa-attribute-key": "Infrastructure Resource Isolation for VNF", "hpa-attribute-value": "Guaranteed QoS", "operator": "=", "unit": ""}
            ]
          },
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "6", "operator": "=", "unit": "" }
            ]
          },
          {
            "hpa-feature": "basicCapabilities",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "6", "operator": "=", "unit": "GB" }
            ]
          },
          {
            "hpa-feature": "cpuPinning",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              {"hpa-attribute-key": "logicalCpuThreadPinningPolicy", "hpa-attribute-value": "prefer", "operator": "=", "unit": ""}
            ]
          },
          {
            "hpa-feature": "cpuPinning",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              {"hpa-attribute-key": "logicalCpuPinningPolicy", "hpa-attribute-value": "dedicated", "operator": "=", "unit": ""}
            ]
          },
          {
            "hpa-feature": "hugePages",
            "mandatory": "True",
            "architecture": "generic",
            "hpa-feature-attributes": [
              {"hpa-attribute-key": "memoryPageSize", "hpa-attribute-value": "2", "operator": "=", "unit": "GB"}
            ]
          }
        ]
      }
    ]
  }
}




HAS Homing Response after changes

Accordingly, the data structure 'directives' will also be added inside OOF HAS response. Since currently the pcie_directives can be get from either Policy or AAI,  HAS still need to process the pcie_directives.

Expand
titleSample directive data in AAI

hpa-feature=”pciePassthrough”,

architecture=”{hw_arch}",

version=”v1”,

Hpa-attribute-key

Hpa-attribute-value

pciVendorId

2345

pciDeviceId

6789

pciCount

1

directive

[

{"attribute_name": "vnic-type", "attribute_value": "direct"},

{"attribute_name": "physical-network", "attribute_value": "physnet2"},

]

'id' and 'type' will help VF-C to filter one VDU(VNFC in HEAT accordingly), and attributes inside will be used to pass down values of SRIOV NIC information. 

In order to make the response more generic and extensible, all the attributes added will be add inside that 'directive' data block.  Please find the sample below for the two examples for vFW.

Status - Done

Code Block
languagejs
themeDJango
titleHAS Homing response (JSON)
linenumberstrue
collapsetrue
# 
# Example one: Only one vnfc/vdu inside such VNF, with requirements on basic capability and pciePassthrough.
#
{
  "plans": [
    {
      "status": "done",
      "id": "plan_id",
      "name": "Plan Name 1",
      "links": [
        [
          {
            "href": "http://conductor:8091/v1/plans/plan_id",
            "rel": "self"
          }
        ]
      ],
      "recommendations": [
        {
          "vFW": {
            "inventory_provider": "aai",
            "candidate": {
              "candidate_id": "DLLSTX1A",
              "cloud_owner": "CloudOwner1",
              "inventory_type": "cloud",
              "location_id": "DLLSTX1A",
              "location_type": "openstack-cloud"
            },
            "attributes": {
              "directives": [
                {
                  "id": "<vdu.Name>",
                  "type": "<vnfc/vdu>",
                  "directives": [
                    {
                      "type": "flavor_directives",
                      "attributes": [
                        {
                          "attribute_name": "oof_returned_flavor_label_for_firewall",
                          "attribute_value": "vim_flavor_X"
                        }
                      ]
                    },
                    {
                      "type": "pciePassthrough_directive",
                      "attributes": [
                        {
                          "attribute_name": "oof_returned_vnic_type_for_firewall_protected",
                          "attribute_value": "direct"
                        },
                        {
                          "attribute_name": "oof_returned_provider_network_for_firewall_protected",
                          "attribute_value": "physnet1"
                        }
                      ]
                    },
                    {
                      "type": "pciePassthrough_directive",
                      "attributes": [
                        {
                          "attribute_name": "oof_returned_vnic_type_for_firewall_unprotected",
                          "attribute_value": "direct"
                        },
                        {
                          "attribute_name": "oof_returned_provider_network_for_firewall_unprotected",
                          "attribute_value": "physnet2"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "cloud_owner": "CloudOwner1",
            "physical-location-id": "DLLSTX1A",
            "cloud_version": "3.0",
            "vim-id": "CloudOwner1_DLLSTX1A"
          }
        }
      ]
    }
  ]
}





# 
# Example two: Two vnfc/vdu inside such VNF. One with requirements on basic capability and pciePassthrough and the other one with requirements on basic capabilities, cpu pinning and huge pages.
#

{
  "plans": [
    {
      "status": "done",
      "id": "plan_id",
      "name": "Plan Name 2",
      "links": [
        [
          {
            "href": "http://conductor:8091/v1/plans/plan_id",
            "rel": "self"
          }
        ]
      ],
      "recommendations": [
        {
          "vFW": {
            "inventory_provider": "aai",
            "candidate": {
              "candidate_id": "DLLSTX1A",
              "cloud_owner": "CloudOwner1",
              "inventory_type": "cloud",
              "location_id": "DLLSTX1A",
              "location_type": "openstack-cloud"
            },
            "attributes": {
              "directives": [
                {
                  "id": "<vdu.Name>",
                  "type": "<vnfc/vdu>",
                  "directives": [
                    {
                      "type": "flavor_directives",
                      "attributes": [
                        {
                          "attribute_name": "oof_returned_flavor_label_for_firewall",
                          "attribute_value": "vim_flavor_X"
                        }
                      ]
                    },
                    {
                      "type": "pciePassthrough_directive",
                      "attributes": [
                        {
                          "attribute_name": "oof_returned_vnic_type_for_firewall_protected",
                          "attribute_value": "direct"
                        },
                        {
                          "attribute_name": "oof_returned_provider_network_for_firewall_protected",
                          "attribute_value": "physnet1"
                        }
                      ]
                    },
                    {
                      "type": "pciePassthrough_directive",
                      "attributes": [
                        {
                          "attribute_name": "oof_returned_vnic_type_for_firewall_unprotected",
                          "attribute_value": "direct"
                        },
                        {
                          "attribute_name": "oof_returned_provider_network_for_firewall_unprotected",
                          "attribute_value": "physnet2"
                        }
                      ]
                    }
                  ]
                },
                {
                  "id": "<vdu.Name>",
                  "type": "<vnfc/vdu>",
                  "directives": [
                    {
                      "type": "flavor_directives",
                      "attributes": [
                        {
                          "attribute_name": "oof_returned_flavor_label_for_generator",
                          "attribute_value": "vim_flavor_Y"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            "cloud_owner": "CloudOwner1",
            "physical-location-id": "DLLSTX1A",
            "cloud_version": "3.0",
            "vim-id": "CloudOwner1_DLLSTX1A"
          }
        }
      ]
    }
  ]
}



OOF Asynchronous Response after changes

The asynchronous will be changed accordingly. And it also aligns with the schema from Multicloud( Gerrit link: https://gerrit.onap.org/r/#/c/60691/).

Here provides two asynchronous responses according to the two examples.

Code Block
languagejs
themeDJango
titleOOF Asynchronous Homing response (JSON)
linenumberstrue
collapsetrue
#
# Example one: Only one vnfc/vdu inside such VNF, with requirements on basic capability and pciePassthrough.
#
{
  "requestId": "xxxx",
  "transactionId": " xxxx ",
  "statusMessage": " xxxx ",
  "requestStatus": "completed",
  "solutions": {
    "placementSolutions": [
      [
        {
          "resourceModuleName": " vFW ",
          "serviceResourceId": " xxxx ",
          "solution": {
            "identifierType": "serviceInstanceId",
            "identifiers": [
              " xxxx "
            ],
            "cloudOwner": "CloudOwner1 "
          },
          "assignmentInfo": [
            { "key": "isRehome",
              "value": "false"
            },
            { "key": "locationId",
              "value": "DLLSTX1A"
            },
            { "key": "locationType",
              "value": "openstack-cloud"
            },
            { "key": "vimId",
              "value": "CloudOwner1_DLLSTX1A"
            },
            { "key": "physicalLocationId",
              "value": "DLLSTX1223"
            },
            { "key": "oofDirectives",
              "value": {
                "directives": [
                  {
                    "id": "<vdu.name>",
                    "type": "vnfc/vdu",
                    "directives": [
                      {
                        "type": "flavor_directive",
                        "attributes": [
                          {
                            "attribute_name": "oof_returned_flavor_label_for_firewall",
                            "attribute_value": "<flavor_name>"
                          }
                        ]
                      },
                      {
                        "type": "pciePassthrough_directive",
                        "attributes": [
                          {
                            "attribute_name": "oof_returned_vnic_type_for_firewall_protected",
                            "attribute_value": "direct"
                          },
                          {
                            "attribute_name": "oof_returned_provider_network_for_firewall_protected",
                            "attribute_value": "physnet1"
                          }
                        ]
                      },
                      {
                        "type": "pciePassthrough_directive",
                        "attributes": [
                          {
                            "attribute_name": "oof_returned_vnic_type_for_firewall_unprotected",
                            "attribute_value": "direct"
                          },
                          {
                            "attribute_name": "oof_returned_provider_network_for_firewall_unprotected",
                            "attribute_value": "physnet2"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "id": "<ID of VNF>",
                    "type": "vnf",
                    "directives": [
                      { "type": " ",
                        "attributes": [
                          {
            "href                "attribute_name": "http://conductor:8091/v1/plans/plan_id ",
            "rel": "self"                "attribute_value": " "
 }         ]       ],       "recommendations": [ }
       {           "vG": {     ]
       "inventory_provider": "aai",             "candidate": {}
              "candidate_id": "DLLSTX1A",     ]
         "cloud_owner": "CloudOwner1",        }
      "inventory_type": "cloud",         ]
     "location_id": "DLLSTX1A",        }
      "location_type": "openstack-cloud"     }
       },   ]
        }
"attributes": {     ]
    ],
    "directiveslicenseSoutions": [
       {
        {"idresourceModuleName": "<vdu.Name>string",
        "serviceResourceId": "string",
        "typeentitlementPoolUUID": "<vnfc/vdu>",[
          "string"
        ],
        "directiveslicenseKeyGroupUUID": [
          "string"
        {"type": "flavor_directives"],
        "entitlementPoolInvariantUUID": [
          "attributes": [string"
        ],
        "licenseKeyGroupInvariantUUID": [
          {"attribute_name":"oof_returned_flavor_label","string"
        ]
      }
    ]
  "attribute_value": "vim_flavor_X",}
}


#
# Example two: Two vnfc/vdu inside such VNF. One with requirements on basic capability and pciePassthrough and the other }one with requirements on basic capabilities, cpu pinning and huge pages.
#
{
  "requestId": "xxxx",
  "transactionId": " ]xxxx ",
  "statusMessage": " xxxx ",
  "requestStatus": "completed",
  "solutions": {
    },
"placementSolutions": [
      [
        {
  {"type": "pciePassthrough_directive",       "resourceModuleName": " vFW ",
          "attributesserviceResourceId": [ " xxxx ",
          "solution": {
             {"attribute_nameidentifierType": "vnic_label_1serviceInstanceId",
            "identifiers": [
         "attribute_value": "direct"    " xxxx "
            ],
   },         "cloudOwner": "CloudOwner1 "
          },
 {"attribute_name":"physicalNetwork",         "assignmentInfo": [
            { "attribute_valuekey": "physnet1isRehome",
              "value": "false"
      }      },
            { "key": "locationId",
 ]             "value": "DLLSTX1A"
     },       },
            { "typekey": "pciePassthrough_directivelocationType",
                    "attributes": ["value": "openstack-cloud"
            },
            {"attribute_name": "vnic_label_2",
        key": "vimId",
              "attribute_value": "directCloudOwner1_DLLSTX1A"
            },
         },   {      "key": "physicalLocationId",
              {"attribute_namevalue": "physicalNetworkDLLSTX1223",
            },
          "attribute_value  { "key": "physnet2oofDirectives",
              "value": {
      }          "directives": [
          ]        {
           }         "id": "<vdu.name>",
      ]               }"type": "vnfc/vdu",
                "cloud_owner": "CloudOwner1",    "directives": [
                      { "physical-location-idtype": "DLLSTX1Aflavor_directive",
              "cloud_version": "3.0",
			          "vim-idattributes": "CloudOwner1_DLLSTX1A" [
               }           }{
        },         {           "vGMuxInfraattribute_name": {"oof_returned_flavor_label_for_firewall",
            "attributes": {               "hostattribute_idvalue": "vgmux<flavor_host_name",name>"
                          }
              "cloud_owner": "CloudOwner1",         ]
     "physical-location-id": "DLLSTX1A",               "service_instance_id": "21d5f3e8-e714-4383-8f99-cc480144505a" },
              "cloud_version": "3.0",
			  "vim-id        { "type": "CloudOwner1pciePassthrough_DLLSTX1Adirective",
            },             "inventory_providerattributes": "aai",[
            "service_resource_id": "12345",             "candidate": {
              "is_rehome": "false",
              "locationattribute_idname": "DLLSTX1Aoof_returned_vnic_type_for_firewall_protected",
              "inventory_type": "service",               "candidateattribute_idvalue": "21d5f3e8-e714-4383-8f99-cc480144505a",direct"
                         "host_id": "vgmux_host_name", },
                "cloud_owner": "CloudOwner1",         {
     "location_type": "openstack-cloud"             }         "attribute_name":  }"oof_returned_provider_network_for_firewall_protected",
         }       ]     }   ] }  

OOF Asynchronous Response after changes

The asynchronous will be changed accordingly. And it also aligns with the schema from Multicloud( Gerrit link: https://gerrit.onap.org/r/#/c/60691/).

Code Block
languagejs
themeDJango
titleOOF Asynchronous Homing response (JSON)
linenumberstrue
collapsetrue
{   "requestIdattribute_value": "xxxxphysnet1",
    "transactionId": " xxxx ",   "statusMessage": " xxxx ",   "requestStatus": "completed",   "solutions": {     "placementSolutions":}
[       [         { "resourceModuleName": " vG ",    ]
      "serviceResourceId": " xxxx ",           "solution": { },
          "identifierType": "serviceInstanceId",           { "identifierstype": ["pciePassthrough_directive",
             " xxxx "         "attributes": [
   ],            "cloudOwner": " xxxx "        {
  },          "assignmentInfo": [             {  "keyattribute_name":"isRehome "oof_returned_vnic_type_for_firewall_unprotected",
               "value":"false"    },             {  "keyattribute_value": "locationIddirect",
               "value":"DLLSTX1A"    },       },
     {  "key":"locationType",                "value":"openstack-cloud" },  {
          {  "key":"vimId",                "valueattribute_name":"rackspace_DLLSTX1A"  } "oof_returned_provider_network_for_firewall_unprotected",
            {  "key":"physicalLocationId",
               "attribute_value": "DLLSTX1223"physnet2"
         },                 }
            {  "key":"oofDirectives",          ]
     "value": { "directives":[               }
 { "id":"<vdu.name>",                  ]
   "type":"vnfc",               },
   "directives":[               {
                    "id": "<vdu.name>",
                  {  "type":"flavor_directive "vnfc/vdu",
   
                    "attributesdirectives": [
     
                      {   "attribute_nametype": "oof_returned_flavor_labeldirective",
                        "attributes": [
       "attribute_value":"<flavor_name>"    #VIM Flavor, which oof seleted.           {
                 }           "attribute_name": "oof_returned_flavor_label_for_generator",
            ]                "attribute_value": "<flavor_name>"
    },                      {}
  "type": "pciePassthrough_directive",                     ]
   "attributes":[                   }
         {"attribute_name":"vnic_label_1", "attribute_value":"direct"},          ]
                  {"attribute_name":"provider_network", "attribute_value":"physnet1"}},
                  {
                ]    "id": "<ID of VNF>",
               },     "type": "vnf",
                  {  "typedirectives": "pciePassthrough_directive",[
                      { "type": "attributes": [ ",
                        "attributes": [
        {"attribute_name":"vnic_label_2", "attribute_value":"direct"},                 {
                            {"attribute_name": "provider_network ",
"attribute_value":"physnet2"}                         ]   "attribute_value": " "
                        }  }
                        ]
         ]             }
                    ]
                         }
                ]

              }

            }
           ]
         }
        ]
    ],
    "licenseSoutions": [
      {
        "resourceModuleName": "string",
        "serviceResourceId": "string",
        "entitlementPoolUUID": [
          "string"
        ],
        "licenseKeyGroupUUID": [
          "string"
        ],
        "entitlementPoolInvariantUUID": [
          "string"
        ],
        "licenseKeyGroupInvariantUUID": [
          "string"
        ]
      }
    ]
  }
}