Hi Krishna,
Can you please help us understand the flow of OOF to Policy to Conductor
which should result in a NST I guess.  In our case the payload to the Xacml
( /policy/pdpx/v1/decision)  from the OOF is,



















*{  "ONAPName": "OOF",  "ONAPComponent": "OOF_Component",  "ONAPInstance":
"OOF_Component_Instance",  "action": "optimize",  "resource": {    "scope":
[      "non-shared"    ],    "services": [      "nst"    ],    "resources":
[      "nst"    ],    "geography": [    ]  }}*

This is what policy is returning,











































































*"policies": {    "queryPolicy_nst": {      "type":
"onap.policies.optimization.service.QueryPolicy",      "type_version":
"1.0.0",      "properties": {        "queryProperties": [          {
    "attribute": "latency",            "attribute_location": "latency"
    },          {            "attribute": "max_number_of_ues",
"attribute_location": "max_number_of_ues"          },          {
"attribute": "s_nssai",            "attribute_location": "s_nssai"
},          {            "attribute": "activity_factor",
"attribute_location": "activity_factor"          },          {
"attribute": "resource_sharing_level",            "attribute_location":
"resource_sharing_level"          },          {            "attribute":
"ue_mobility_level",            "attribute_location": "ue_mobility_level"
        },          {            "attribute": "sst",
"attribute_location": "sst"          },          {            "attribute":
"AN_latency",            "attribute_location": "AN_latency"          },
      {            "attribute": "CN_latency",
"attribute_location": "CN_latency"          },          {
"attribute": "TN_BH_latency",            "attribute_location":
"TN_BH_latency"          },          {            "attribute":
"model_invariant_id",            "attribute_location": "invariantUUID"
    },          {            "attribute": "model_version_id",
"attribute_location": "UUID"          }        ],        "identity":
"queryPolicy_nst",        "geography": [],        "services": [
"nst"        ],        "scope": [          "shared,reuse",
"shared,create_new",          "non-shared"        ]      },      "name":
"queryPolicy_nst",      "version": "1.0.0",      "metadata": {
"policy-id": "queryPolicy_nst",        "policy-version": "1.0.0"      }
}  }}*

Then in the OOF the Payload to Conductor: {"name":
"b7bcabe3-9d83-4ad1-b98b-8450dbf18802", "files": {}, "timeout": 600,
"num_solution": "1", "template": {"homing_template_version": "2020-08-13",
"parameters": {"REQUIRED_MEM": "", "REQUIRED_DISK": "", "customer_lat":
0.0, "customer_long": 0.0, "service_name": "", "service_id": "", "latency":
50}, "demands": {}, "constraints": {}, "optimization": {}}}


After this is fails with an error from conductor "local variable
'triage_data_trans' referenced before assignment"

I am not able to understand how the conductor ( or HAS) will return a NST
based on the payload that is sent to the conductor, as it doesn't seem to
have relevant information.

Can you please let us know if the policy that we configured is even correct
?
Thanks
-Sandeep

On Fri, Mar 19, 2021 at 12:44 PM Rajendra Prasad Mishra <
[email protected]> wrote:

> Hi Krishna,
>    Thanks for the update. We are using the master branch of OOM with some
> modifications to image versions as mentioned in the wiki page (
> https://wiki.onap.org/display/DW/Setup+related+issues)
> We deployed the master branch around 8 days back. In case there are fixes
> done after that then please share the new image version.
>
> Can you share the link of the wiki page that you will update for policy.
>
> thanks,
> -RP
>
>
> On Fri, Mar 19, 2021 at 11:38 AM [email protected] <
> [email protected]> wrote:
>
>> Hi,
>>
>> I assume that you are using the latest master branch of OOM to deploy
>> ONAP. In the current release, there are some enhancements to the NST
>> selection which uses policy. Currently the integration testing is in
>> process. There are some policies that needs to be created in addition to
>> NSI/NSSI policies. I will update the policy creation page with the latest
>> info regarding the current release.
>> ------------------------------
>> *From:* [email protected] <[email protected]> on
>> behalf of Rajendra Prasad Mishra via lists.onap.org <rpmishra=
>> [email protected]>
>> *Sent:* Friday, March 19, 2021 11:32 AM
>> *To:* [email protected] <[email protected]>;
>> Rajendra Prasad Mishra <[email protected]>
>> *Cc:* Malinconico Aniello Paolo (Guest) <
>> [email protected]>
>> *Subject:* Re: [onap-discuss] [e2e 5G Network Slicing] UUI Cannot
>> Process Task
>>
>>
>> CAUTION:This email is received from an external domain. Open the
>> hyperlink(s) & attachment(s) with caution.
>> .
>>
>> Hi,
>>             From the OOF logs the service name is set to 'nst'. While I
>> created the service as 'EmbbNst_O2' at the time of design.
>> So the question is which component is passing these values to OOF. And
>> also, OOF fails with internal error (as in below log). Any clues or hints ?
>>
>> +00:00|2021-03-19T03:24:43.847+00:00|||Thread-91||||||||||DEBUG||||||||||||||policy_request_json
>> {'requestInfo': {'transactionId': 'b7bcabe3-9d83-4ad1-b98b-8450dbf18802',
>> 'requestId': 'b7bcabe3-9d83-4ad1-b98b-8450dbf18802', 'sourceId': 'so',
>> 'timeout': 600, 'callbackUrl': '
>> http://so-oof-adapter.onap:8090/so/adapters/oof/callback/v1/NSTSelectionResponse/b7bcabe3-9d83-4ad1-b98b-8450dbf18802
>> <https://apc01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fso-oof-adapter.onap%3A8090%2Fso%2Fadapters%2Foof%2Fcallback%2Fv1%2FNSTSelectionResponse%2Fb7bcabe3-9d83-4ad1-b98b-8450dbf18802&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750046607%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ZMX%2FymRlSR%2F6jA2SiNVnFB1NgmDQfjxOc8XrdEZ9gxc%3D&reserved=0>',
>> 'numSolutions': 1}, 'serviceProfile': {'maxPktSize': 0, 'termDensity': 0,
>> 'maxNumberofUEs': 1000, 'survivalTime': '', 'latency': 50, 'reliability':
>> '', 'dLThptPerSlice': 40000000, 'availability': '0.0', 'sNSSAI':
>> '01-39997FF8', 'jitter': 10, 'sST': '', 'dLThptPerUE': 1000,
>> 'maxNumberofConns': 60000, 'uEMobilityLevel': 'stationary', 'uLThptPerUE':
>> 1000, 'pLMNIdList': '', 'coverageAreaTAList':
>> 'Beijing;Beijing;HaidianDistrict;WanshouluStreet', 'uLThptPerSlice':
>> 40000000, 'activityFactor': '20', 'resourceSharingLevel': 'non-shared'},
>> 'serviceInfo': {'serviceName': 'nst'}}
>> +00:00|2021-03-19T03:24:43.850+00:00|||Thread-91||||||||||INFO||||||||||||||Making
>> a call to service policy for request ID:
>> b7bcabe3-9d83-4ad1-b98b-8450dbf18802
>> +00:00|2021-03-19T03:24:43.851+00:00|||Thread-91||||||||||DEBUG||||||||||||||Requesting
>> URL: https://policy-xacml-pdp:6969/policy/pdpx/v1/decision
>> +00:00|2021-03-19T03:24:43.932+00:00|||Thread-91||||||||||DEBUG||||||||||||||Received
>> response [code: 200, headers: {'Date': 'Fri, 19 Mar 2021 03:24:43 GMT',
>> 'X-MinorVersion': '0', 'X-PatchVersion': '0', 'X-LatestVersion': '1.0.0',
>> 'X-ONAP-RequestID': '0a48c081-52b0-4089-9304-fb60a2d0d025', 'Content-Type':
>> 'application/json', 'Content-Length': '32', 'Server':
>> 'Jetty(9.4.33.v20201020)'}, data: {'_content':
>> b'{"status":"error","policies":{}}', '_content_consumed': True, '_next':
>> None, 'status_code': 200, 'headers': {'Date': 'Fri, 19 Mar 2021 03:24:43
>> GMT', 'X-MinorVersion': '0', 'X-PatchVersion': '0', 'X-LatestVersion':
>> '1.0.0', 'X-ONAP-RequestID': '0a48c081-52b0-4089-9304-fb60a2d0d025',
>> 'Content-Type': 'application/json', 'Content-Length': '32', 'Server':
>> 'Jetty(9.4.33.v20201020)'}, 'raw': <urllib3.response.HTTPResponse object at
>> 0x7fda8d87f0d0>, 'url': '
>> https://policy-xacml-pdp:6969/policy/pdpx/v1/decision', 'encoding':
>> None, 'history': [], 'reason': 'OK', 'cookies': <RequestsCookieJar[]>,
>> 'elapsed': datetime.timedelta(microseconds=64416), 'request':
>> <PreparedRequest [POST]>, 'connection': <requests.adapters.HTTPAdapter
>> object at 0x7fda8d86b310>}]
>> .
>> .
>> .
>> +00:00|2021-03-19T03:24:55.403+00:00|||Thread-91||||||||||DEBUG||||||||||||||Requesting
>> URL:
>> https://oof-has-api:8091/v1/plans/b741e313-5f26-4d3b-bf4a-0692b7a84975
>> +00:00|2021-03-19T03:24:58.009+00:00|||Thread-91||||||||||DEBUG||||||||||||||Received
>> response [code: 200, headers: {'Server': 'nginx/1.18.0', 'Date': 'Fri, 19
>> Mar 2021 03:24:57 GMT', 'Content-Type': 'application/json',
>> 'Content-Length': '318', 'Connection': 'keep-alive', 'X-MinorVersion': '0',
>> 'X-PatchVersion': '3', 'X-LatestVersion': '2.1.3'}, data: {'_content':
>> b'{"plans": [{"name": "b7bcabe3-9d83-4ad1-b98b-8450dbf18802", "id":
>> "b741e313-5f26-4d3b-bf4a-0692b7a84975", "status": "error", "message":
>> "[local variable \'triage_data_trans\' referenced before assignment]",
>> "links": [[{"href": "
>> https://oof-has-api:8091/v1/plans/b741e313-5f26-4d3b-bf4a-0692b7a84975";,
>> "rel": "self"}]]}]}', '_content_consumed': True, '_next': None,
>> 'status_code': 200, 'headers': {'Server': 'nginx/1.18.0', 'Date': 'Fri, 19
>> Mar 2021 03:24:57 GMT', 'Content-Type': 'application/json',
>> 'Content-Length': '318', 'Connection': 'keep-alive', 'X-MinorVersion': '0',
>> 'X-PatchVersion': '3', 'X-LatestVersion': '2.1.3'}, 'raw':
>> <urllib3.response.HTTPResponse object at 0x7fda8c78d910>, 'url': '
>> https://oof-has-api:8091/v1/plans/b741e313-5f26-4d3b-bf4a-0692b7a84975',
>> 'encoding': None, 'history': [], 'reason': 'OK', 'cookies':
>> <RequestsCookieJar[]>, 'elapsed': datetime.timedelta(seconds=2,
>> microseconds=575663), 'request': <PreparedRequest [GET]>, 'connection':
>> <requests.adapters.HTTPAdapter object at 0x7fda8d86b3d0>}]
>> +00:00|2021-03-19T03:24:58.011+00:00|||Thread-91||||||||||ERROR|||||||||||errorCode=400,errorDescription=Internal
>> Error|||Error from conductor [local variable 'triage_data_trans'
>> referenced before assignment]
>> +00:00|2021-03-19T03:24:58.013+00:00|||Thread-91||||||||||DEBUG|||||||||||errorCode=400,errorDescription=Internal
>> Error|||Requesting URL:
>> http://so-oof-adapter.onap:8090/so/adapters/oof/callback/v1/NSTSelectionResponse/b7bcabe3-9d83-4ad1-b98b-8450dbf18802
>> <https://apc01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fso-oof-adapter.onap%3A8090%2Fso%2Fadapters%2Foof%2Fcallback%2Fv1%2FNSTSelectionResponse%2Fb7bcabe3-9d83-4ad1-b98b-8450dbf18802&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750046607%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ZMX%2FymRlSR%2F6jA2SiNVnFB1NgmDQfjxOc8XrdEZ9gxc%3D&reserved=0>
>> +00:00|2021-03-19T03:25:57.808+00:00|||Thread-91||||||||||ERROR|||||||||||errorCode=400,errorDescription=Internal
>> Error|||Error sending asynchronous notification for
>> b7bcabe3-9d83-4ad1-b98b-8450dbf18802 Traceback (most recent call last):
>> File "/opt/osdf/apps/nst/optimizers/nst_select_processor.py", line 65, in
>> process_nst_selection     rest_client.request(json=solution,
>> noresponse=True)   File "/opt/osdf/osdf/utils/interfaces.py", line 107, in
>> request     raise res.raise_for_status()   File
>> "/usr/lib/python3/dist-packages/requests/models.py", line 940, in
>> raise_for_status     raise HTTPError(http_error_msg, response=self)
>> requests.exceptions.HTTPError: 500 Server Error:  for url:
>> http://so-oof-adapter.onap:8090/so/adapters/oof/callback/v1/NSTSelectionResponse/b7bcabe3-9d83-4ad1-b98b-8450dbf18802
>> <https://apc01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fso-oof-adapter.onap%3A8090%2Fso%2Fadapters%2Foof%2Fcallback%2Fv1%2FNSTSelectionResponse%2Fb7bcabe3-9d83-4ad1-b98b-8450dbf18802&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750056562%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=LnIZdA6TvjftJenM7ruXasOFe8L0jdcyLckV6hDyUJ0%3D&reserved=0>
>>
>> thanks,
>> -RP Mishra
>>
>> On Thu, Mar 18, 2021 at 7:25 PM Rajendra Prasad Mishra via lists.onap.org
>> <https://apc01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.onap.org%2F&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750056562%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=bGQ6ikqmlddnwJUD6A9DmZnQWmkIvP4sNpn1yCByTYg%3D&reserved=0>
>> <[email protected]> wrote:
>>
>> I ran the following commands based on the wiki (
>> https://wiki.onap.org/display/DW/Optimization+Policy+Creation+Steps
>> <https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.onap.org%2Fdisplay%2FDW%2FOptimization%2BPolicy%2BCreation%2BSteps&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750056562%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=NEtWDnKFvAGXpr80ZY%2BHfgBzcOWxZrtXd9%2F%2F%2FI2KYFE%3D&reserved=0>
>> )
>> python3 policy_utils.py create_policy_types policy_types
>> onap@dev-oof-f6568dc78-7b8d9:/opt/osdf/policies$ python3 policy_utils.py
>> generate_nsi_policies EmbbNst_O2
>> onap@dev-oof-f6568dc78-7b8d9:/opt/osdf/policies$ python3 policy_utils.py
>> generate_nssi_policies Tn_ONAP_internal_BH  minimize latency
>> onap@dev-oof-f6568dc78-7b8d9:/opt/osdf/policies$ python3 policy_utils.py
>> generate_nssi_policies EmbbAn_NF  minimize latency
>> onap@dev-oof-f6568dc78-7b8d9:/opt/osdf/policies$ python3 policy_utils.py
>> generate_nssi_policies EmbbCn_External  minimize latencyAnd below is the
>> list of all files and directories, my suspicion is that there is something
>> wrong with it. We should have only one set of DIR's
>> Can someone confirm if this is 
>> ok.onap@dev-oof-f6568dc78-7b8d9:/opt/osdf/policies$
>> ls -R
>> .:
>> gen_nsi_policies  gen_nssi_policies  nsi_policies  nssi_policies
>> policy_types  policy_utils.py  requirements.txt
>> ./gen_nsi_policies:
>> optimization_nsi_create_new.json  optimization_nsi_non_shared.json
>> optimization_nsi_reuse.json  query_nsi.json  threshold_nsi.json
>> vnf_nsi_nonshared.json  vnf_nsi_shared.json./gen_nssi_policies:
>> optimization_nssi.json  query_nssi.json  threshold_nssi.json
>> vnf_nssi.json./nsi_policies:
>> optimization_nsi_create_new.json  optimization_nsi_non_shared.json
>> optimization_nsi_reuse.json  query_nsi.json  threshold_nsi.json
>> vnf_nsi_nonshared.json  vnf_nsi_shared.json./nssi_policies:
>> optimization_nssi.json  query_nssi.json  threshold_nssi.json
>> vnf_nssi.json./policy_types:
>> optimization_v2.json  threshold.json
>>
>> The files in gen_nsi_policies has the service name set, while the ones in
>> nsi_policies has only template names.
>>
>> onap@dev-oof-f6568dc78-7b8d9:/opt/osdf/policies/gen_nsi_policies$ cat
>> optimization_nsi_create_new.json
>> {"tosca_definitions_version": "tosca_simple_yaml_1_1_0",
>> "topology_template": {"policies": [{"maximizeCost_EmbbNst_O2": {"metadata":
>> {"policy-id": "maximizeCost_EmbbNst_O2", "policy-version": 1},
>> "properties": {"geography": [], "identity": "optimization", "goal":
>> "maximize", "operation_function": {"operator": "sum", "operands":
>> [{"function": "attribute", "params": {"attribute": "creation_cost",
>> "demand": "EmbbNst_O2"}}]}, "resources": ["EmbbNst_O2"], "scope":
>> ["shared,create_new"], "services": ["EmbbNst_O2"]}, "type":
>> "onap.policies.optimization.resource.OptimizationPolicy", "type_version":
>> "2.0.0", "version": "1.0.0"}}]}}onap@dev-oof-f6568dc78-7b8d9
>> :/opt/osdf/policies/gen_nsi_policies$
>>
>> onap@dev-oof-f6568dc78-7b8d9:/opt/osdf/policies/nsi_policies$ cat
>> optimization_nsi_create_new.json
>> {
>>     "maximizeCost_{{ service_name }}": {
>>         "metadata": {
>>             "policy-id": "maximizeCost_{{ service_name }}",
>>             "policy-version": 1
>>         },
>>         "properties": {
>>             "geography": [],
>>             "identity": "optimization",
>>             "goal": "maximize",
>>             "operation_function": {
>>                 "operator": "sum",
>>                 "operands": [
>>                     {
>>                         "function": "attribute",
>>                         "params": {
>>                             "attribute": "creation_cost",
>>                             "demand": "{{ service_name }}"
>>                         }
>>                     }
>>                 ]
>>             },
>>             "resources": [
>>                 "{{ service_name }}"
>>             ],
>>             "scope": [
>>                 "shared,create_new"
>>             ],
>>             "services": [
>>                 "{{ service_name }}"
>>             ]
>>         },
>>         "type": "onap.policies.optimization.resource.OptimizationPolicy",
>>         "type_version": "2.0.0",
>>         "version": "1.0.0"
>>     }
>> }
>>
>>
>> thanks,
>> -RP
>>
>>
>> On Wed, Mar 17, 2021 at 8:44 PM Aniello Paolo Malinconico via
>> lists.onap.org
>> <https://apc01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.onap.org%2F&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750066517%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=8kf2N79nTxuHMH35kixPLdNopijc%2F4kF1bO3pABp3sY%3D&reserved=0>
>> <[email protected]> wrote:
>>
>> Have you pushed all policies properly?
>>
>>
>>
>> Thanks,
>> Aniello
>>
>> -----------------------------------------------------------------
>> *TIM*
>> *Aniello Paolo Malinconico*
>> Chief Innovation & Partnership Office
>> Technology Innovation
>>
>> *TIM S.p.A.*
>> Via G. Reiss Romoli, 274 – 10148 TORINO
>> email: [email protected]
>> Tim Official: *Facebook*
>> <https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.facebook.com%2FTimOfficialPage&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750066517%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=swyp%2BcM%2Fs35ylolHaduFq%2BsAQ6RPb6RfwtbNDQe7QEI%3D&reserved=0>
>>  - *Twitter*
>> <https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftwitter.com%2Ftim_official&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750066517%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=T0iPTdraHhzGjfe1kh57wf56HFZ0p65l3Fsj3TgSnHs%3D&reserved=0>
>>  - *www.tim.it*
>> <https://apc01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.tim.it%2F&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750076476%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=hUay8i9whv8u98JwJC%2BE0cCH%2BqxKNOoMWHIUDs3rs4I%3D&reserved=0>
>>
>>
>>
>> --
>>
>> *CRN Top 10 Coolest Edge Computing Startups of 2020
>> <https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.crn.com%2Fslide-shows%2Fnetworking%2Fthe-10-coolest-edge-computing-startups-of-2020%2F2&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750076476%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=YhLcBqJRs%2FLxuTrLJMgZZqxvRd6Ck1jfT6WN0lJLucY%3D&reserved=0>*
>>
>>
>>
>> --
>>
>> *CRN Top 10 Coolest Edge Computing Startups of 2020
>> <https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.crn.com%2Fslide-shows%2Fnetworking%2Fthe-10-coolest-edge-computing-startups-of-2020%2F2&data=04%7C01%7Ckrishna.moorthy6%40wipro.com%7C3d758dc1fafa4028c9ee08d8ea9ca13d%7C258ac4e4146a411e9dc879a9e12fd6da%7C1%7C1%7C637517305750076476%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=YhLcBqJRs%2FLxuTrLJMgZZqxvRd6Ck1jfT6WN0lJLucY%3D&reserved=0>*
>> 'The information contained in this electronic message and any attachments
>> to this message are intended for the exclusive use of the addressee(s) and
>> may contain proprietary, confidential or privileged information. If you are
>> not the intended recipient, you should not disseminate, distribute or copy
>> this e-mail. Please notify the sender immediately and destroy all copies of
>> this message and any attachments. WARNING: Computer viruses can be
>> transmitted via email. The recipient should check this email and any
>> attachments for the presence of viruses. The company accepts no liability
>> for any damage caused by any virus transmitted by this email.
>> www.wipro.com'
>>
>
>
> --
>
> *CRN Top 10 Coolest Edge Computing Startups of 2020
> <https://www.crn.com/slide-shows/networking/the-10-coolest-edge-computing-startups-of-2020/2>*
> 
>
>


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#23033): https://lists.onap.org/g/onap-discuss/message/23033
Mute This Topic: https://lists.onap.org/mt/80898505/21656
Group Owner: [email protected]
Unsubscribe: https://lists.onap.org/g/onap-discuss/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to