From 2cf33d0d1cecad5a309d428aa44f7740ca48032e Mon Sep 17 00:00:00 2001 From: Reshmasree Date: Tue, 10 Nov 2020 18:00:05 +0530 Subject: [PATCH] Add slice-analysis-ms documents Application configurations and troubleshooting steps added Removed references to PNDA Issue-ID: DCAEGEN2-2515 Signed-off-by: Reshmasree Signed-off-by: Ahila P Change-Id: I941420b459b60e0e8f4c63463b16d7f6602cbfeb --- docs/sections/.architecture.rst.swo | Bin 12288 -> 0 bytes docs/sections/architecture.rst | 223 +++++++++++---------- docs/sections/services/serviceindex.rst | 53 ++--- docs/sections/services/slice-analysis-ms/index.rst | 51 +++++ .../services/slice-analysis-ms/installation.rst | 75 +++++++ .../slice-analysis-ms/slice_analysis_ms_arch.jpg | Bin 0 -> 58211 bytes .../slice_analysis_ms_overview.rst | 65 ++++++ .../slice_analysis_ms_troubleshooting.rst | 46 +++++ 8 files changed, 377 insertions(+), 136 deletions(-) delete mode 100644 docs/sections/.architecture.rst.swo create mode 100644 docs/sections/services/slice-analysis-ms/index.rst create mode 100644 docs/sections/services/slice-analysis-ms/installation.rst create mode 100644 docs/sections/services/slice-analysis-ms/slice_analysis_ms_arch.jpg create mode 100644 docs/sections/services/slice-analysis-ms/slice_analysis_ms_overview.rst create mode 100644 docs/sections/services/slice-analysis-ms/slice_analysis_ms_troubleshooting.rst diff --git a/docs/sections/.architecture.rst.swo b/docs/sections/.architecture.rst.swo deleted file mode 100644 index cc4da6028ef44191ea9dfbcf09586a7e39414ec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2&u<$=6vrnZep5j0fg`W2gc8YKr=_S62_eTxNTen;ByAA_r19?99%VhVotbs& z9^gPG=gG&%g`TB zVI1@WbQU@TorD&k@1JDs3+NWK4Lu4y0xdxQJi*v+(67+9&^OShPztR;uR{&!B`C!F z5aukp90^1Mkw7Hy{|T&h+Uq1ON#%s;^Hiz<9Y{AMHx#tC&3Ttb!dgBMv|3u$oV(bT zpTnoGt1&jdsxR%WuMk~b-=$RNIbL1Ura_xJhXvw_=MyJW%f_AV9fs|7+Vf-9c6M9i zjcd1?J35YSXhWBG+Fg3*9EDg4Zm^0hxWl4S5zlift)P@!VH0*F0tCaZgxGddp}3LS zf*@5_llF#2*rCod>KJXU^>EsC9JB~mmKxMq!|I385ig2drrf{7H)pAWkZNN@9v;r7 zG(bx^E|oCyrpUsq=4_ogE4w?}UD`9enCE-@Wbc2Iu1e!dp40kRC`Y@_2tM)wEFwQk z_cqX^PMtrbe9CoKn6XR+04eRnN~n(j-cx^TedqiXL@zHzVNgw!i6Yk%B%Usk(wU%6 z+wRjEcbwWYM$`q4zBVIT^dR9_URsnDEslk;fJhgTbIH5lj6q~drF;yTw-T6J)b1Q| zpJ5-qznaw5)(wol zmQl~ytP`M+uMLGFxE8u|=6j0B8YCSWG7o&X3y|gz25?wFqEPign2k@qmDj)%hMrh8 z%&D7ThfU-s^rw{TFy^b?`xb(#+rZpIOp}-iG`Bq1KN!Mi4s=ps zpCdagm;30=x%PN+tqa6$%bpe2OJAJ2zyT9phh~1uH)eYt&eq>#gtw>baXyL=p78s} z(!o%sLo|OyJwZmKLXLeRCWKTVrD5nCKwDxoxApG9E@oS>(l6EYn5!KpKGLYlsS$@H z4yLhI=brCdaAc#??%HXy>Ki=@iBQ5FXtPi7PCALB70KV(unp>lpTea}3AR9C^jKyn z4W3(#9@;m2B*H}BS$sy(RLzLz^5%3WRzQ3c8*$eNL!3dO6xz6Y2n+4EYVO|2S?BT@ z4o3wX@|j-pb?4U!y>>1xKk%^i`dm%WuSYfauTfIr^LbB{f?+xK#AcA}KJfjkO-hfx9GJ>5N dtWeuIBYUMUCLAft6n=S80SpewOH=y^`wy~|GEx8l diff --git a/docs/sections/architecture.rst b/docs/sections/architecture.rst index 8231f44d..b5fe7dcb 100644 --- a/docs/sections/architecture.rst +++ b/docs/sections/architecture.rst @@ -1,110 +1,113 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. _architecture: - - -Architecture -============ - -Data Collection Analytics and Events (DCAE) is the primary data collection and analysis system of ONAP. DCAE architecture comprises of DCAE Platform and -DCAE Service components making DCAE flexible, elastic, and expansive enough for supporting the potentially infinite number of ways of constructing intelligent -and automated control loops on distributed and heterogeneous infrastructure. - -DCAE Platform supports the functions to deploy, host and perform LCM applications of Service components. DCAE Platform components enable model driven deployment of -service components and middleware infrastructures that service components depend upon, such as special storage and computation platforms. When triggered by an -invocation call (such as CLAMP or via DCAE Dashboard), DCAE Platform follows the TOSCA model of the control loop that is specified by the triggering call, -interacts with the underlying networking and computing infrastructure such as OpenSatck installations and Kubernetes clusters to deploy and configure the virtual -apparatus (i.e. the collectors, the analytics, and auxiliary microservices) that are needed to form the control loop, at locations that requested. -DCAE Platform also provisions DMaaP topics and manages the distribution scopes of the topics following the prescription of the control loop model by interacting -with controlling function of DMaaP. - -DCAE Service components are the functional entities that realize the collection and analytics needs of ONAP control loops. They include the collectors for various -data collection needs, event processors for data standardization, analytics that assess collected data, and various auxiliary microservices that assist data -collection and analytics, and support other ONAP functions. Service components and DMaaP buses form the "data plane" for DCAE, where DCAE collected data is -transported among different DCAE service components. - -DCAE use Consul's distributed K-V store service to manage component configurations where each key is based on the unique identity of a DCAE component (identified by ServiceComponentName), and the value is the configuration for the corresponding component. The K-V store for each service components is created during deployment. DCAE platform creates and updates the K-V pairs based on information provided as part of the control loop blueprint deployment, or through a notification/trigger received from other ONAP components such as Policy Framework and CLAMP. Either through periodically polling or proactive pushing, the DCAE components get the configuration updates in realtime and apply the configuration updates. DCAE Platform also offers dynamic template resolution for configuration parameters that are dynamic and only known by the DCAE platform, such as dynamically provisioned DMaaP topics. This approach standardizes component deployment and configuration management for DCAE service components in multi-site deployment. - - -DCAE Components ---------------- - -The following lists the components included in ONAP DCAE . All DCAE components are offered as Docker containers. Following ONAP level deployment methods, these components can be deployed as Kubernetes Deployments and Services. - -- DCAE Platform - - Core Platform - - Cloudify Manager: TOSCA model executor. Materializes TOSCA models of control loop, or Blueprints, into properly configured and managed virtual DCAE functional components. - - Plugins (K8S, Dmaap, Policy, Clamp, Postgres) - - Extended Platform - - Configuration Binding Service: Agent for service component configuration fetching; providing configuration parameter resolution. - - Deployment Handler: API for triggering control loop deployment based on control loop's TOSCA model. - - Policy Handler: Handler for fetching policy updates from Policy engine; and updating the configuration policies of KV entries in Consul cluster KV store for DCAE components. - - Service Change Handler: Handler for interfacing with SDC; receiving new TOSCA models; and storing them in DCAE's own inventory. - - DCAE Inventory-API: API for DCAE's TOSCA model store. - - Platform services - - Consul: Distributed service discovery service and KV store. - - Postgres Database: DCAE's TOSCA model store. - - Redis Database: DCAE's transactional state store, used by TCA for supporting persistence and seamless scaling. - -- DCAE Services - - Collectors - - Virtual Event Streaming (VES) collector - - SNMP Trap collector - - High-Volume VES collector (HV-VES) - - DataFile collector - - RESTConf collector - - Analytics - - Holmes correlation analytics - - CDAP based Threshold Crosssing Analytics application (tca) - - Docker based Threshold Crosssing Analytics - - Heartbeat Services - - SON-Handler Service - - Event processors - - PNF Registration Handler - - VES Mapper Service - - PM-Mapper Service - - BBS-EventProcessor Service - - PM Subcription Handler - - DataLake Handlers - - -The figure below shows the DCAE architecture and how the components work with each other. The components on the right constitute the Platform/controller components which are statically deployed. The components on the right represent the services which can be both deployed statically or dynamically (via CLAMP) - -.. image:: images/R6_architecture_diagram.png - - -Deployment Scenarios --------------------- - -Because DCAE service components are deployed on-demand following the control loop needs for managing ONAP deployed services, DCAE must support dynamic and on-demand deployment of service components based on ONAP control loop demands. This is why all other ONAP components are launched from the ONAP level method, DCAE only deploys a subset of its components during this ONAP deployment process and rest of DCAE components will be deployed on-demand based on usecase needs triggered by control loop request originated from CLAMP, or even by operator manually invoking DCAE's deployment API call. - -ONAP supports deployment through OOM Helm Chart currently (Heat deployment support is discontinued since R3). Hence all DCAE Platform components are deployed via Helm charts - this includes Cloudify Manager, ConfigBinding service, ServiceChange Handler, Policy Handler, Dashboard and Inventory, each with corresponding Helm charts under OOM (https://git.onap.org/oom/tree/kubernetes/dcaegen2/components). Once DCAE platform components are up and running, rest of DCAE service components required for ONAP flow are deployed via bootstrap POD, which invokes Cloudify Manager API with Blueprints for various DCAE components that are needed for the built-in collections and control loops flow support. - -To keep the ONAP footprint minimal, only minimal set of MS (required for ONAP Integration usecases) are deployed via bootstrap pod. Rest of service blueprints are available for operator to deploy on-demand as required. - - -More details of the DCAE deployment can be found under Installation section. - - -Usage Scenarios ---------------- - -For ONAP DCAE participates in the following use cases. - -- vDNS: VES collector, TCA analytics - -- vFW: VES collector, TCA analytics - -- vCPE: VES collector, TCA analytics - -- vVoLTE: VES collector, Holmes analytics - -- CCVPN : RestConf Collector, Holmes - -- BBS : VES Collector, PRH, BBS-Event Processor, VES-Mapper, RESTConf Collector - -- 5g Bulk PM : DataFile Collector, PM-Mapper, HV-VES - - -In addition, DCAE supports on-demand deployment and configuration of service components via CLAMP. In such case CLAMP invokes the deployment and configuration of additional TCA instances. - +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. _architecture: + + +Architecture +============ + +Data Collection Analytics and Events (DCAE) is the primary data collection and analysis system of ONAP. DCAE architecture comprises of DCAE Platform and +DCAE Service components making DCAE flexible, elastic, and expansive enough for supporting the potentially infinite number of ways of constructing intelligent +and automated control loops on distributed and heterogeneous infrastructure. + +DCAE Platform supports the functions to deploy, host and perform LCM applications of Service components. DCAE Platform components enable model driven deployment of +service components and middleware infrastructures that service components depend upon, such as special storage and computation platforms. When triggered by an +invocation call (such as CLAMP or via DCAE Dashboard), DCAE Platform follows the TOSCA model of the control loop that is specified by the triggering call, +interacts with the underlying networking and computing infrastructure such as OpenSatck installations and Kubernetes clusters to deploy and configure the virtual +apparatus (i.e. the collectors, the analytics, and auxiliary microservices) that are needed to form the control loop, at locations that requested. +DCAE Platform also provisions DMaaP topics and manages the distribution scopes of the topics following the prescription of the control loop model by interacting +with controlling function of DMaaP. + +DCAE Service components are the functional entities that realize the collection and analytics needs of ONAP control loops. They include the collectors for various +data collection needs, event processors for data standardization, analytics that assess collected data, and various auxiliary microservices that assist data +collection and analytics, and support other ONAP functions. Service components and DMaaP buses form the "data plane" for DCAE, where DCAE collected data is +transported among different DCAE service components. + +DCAE use Consul's distributed K-V store service to manage component configurations where each key is based on the unique identity of a DCAE component (identified by ServiceComponentName), and the value is the configuration for the corresponding component. The K-V store for each service components is created during deployment. DCAE platform creates and updates the K-V pairs based on information provided as part of the control loop blueprint deployment, or through a notification/trigger received from other ONAP components such as Policy Framework and CLAMP. Either through periodically polling or proactive pushing, the DCAE components get the configuration updates in realtime and apply the configuration updates. DCAE Platform also offers dynamic template resolution for configuration parameters that are dynamic and only known by the DCAE platform, such as dynamically provisioned DMaaP topics. This approach standardizes component deployment and configuration management for DCAE service components in multi-site deployment. + + +DCAE Components +--------------- + +The following lists the components included in ONAP DCAE . All DCAE components are offered as Docker containers. Following ONAP level deployment methods, these components can be deployed as Kubernetes Deployments and Services. + +- DCAE Platform + - Core Platform + - Cloudify Manager: TOSCA model executor. Materializes TOSCA models of control loop, or Blueprints, into properly configured and managed virtual DCAE functional components. + - Plugins (K8S, Dmaap, Policy, Clamp, Postgres) + - Extended Platform + - Configuration Binding Service: Agent for service component configuration fetching; providing configuration parameter resolution. + - Deployment Handler: API for triggering control loop deployment based on control loop's TOSCA model. + - Policy Handler: Handler for fetching policy updates from Policy engine; and updating the configuration policies of KV entries in Consul cluster KV store for DCAE components. + - Service Change Handler: Handler for interfacing with SDC; receiving new TOSCA models; and storing them in DCAE's own inventory. + - DCAE Inventory-API: API for DCAE's TOSCA model store. + - Platform services + - Consul: Distributed service discovery service and KV store. + - Postgres Database: DCAE's TOSCA model store. + - Redis Database: DCAE's transactional state store, used by TCA for supporting persistence and seamless scaling. + +- DCAE Services + - Collectors + - Virtual Event Streaming (VES) collector + - SNMP Trap collector + - High-Volume VES collector (HV-VES) + - DataFile collector + - RESTConf collector + - Analytics + - Holmes correlation analytics + - CDAP based Threshold Crosssing Analytics application (tca) + - Docker based Threshold Crosssing Analytics + - Heartbeat Services + - SON-Handler Service + - Slice Analysis + - Event processors + - PNF Registration Handler + - VES Mapper Service + - PM-Mapper Service + - BBS-EventProcessor Service + - PM Subcription Handler + - DataLake Handlers + + +The figure below shows the DCAE architecture and how the components work with each other. The components on the right constitute the Platform/controller components which are statically deployed. The components on the right represent the services which can be both deployed statically or dynamically (via CLAMP) + +.. image:: images/R6_architecture_diagram.png + + +Deployment Scenarios +-------------------- + +Because DCAE service components are deployed on-demand following the control loop needs for managing ONAP deployed services, DCAE must support dynamic and on-demand deployment of service components based on ONAP control loop demands. This is why all other ONAP components are launched from the ONAP level method, DCAE only deploys a subset of its components during this ONAP deployment process and rest of DCAE components will be deployed on-demand based on usecase needs triggered by control loop request originated from CLAMP, or even by operator manually invoking DCAE's deployment API call. + +ONAP supports deployment through OOM Helm Chart currently (Heat deployment support is discontinued since R3). Hence all DCAE Platform components are deployed via Helm charts - this includes Cloudify Manager, ConfigBinding service, ServiceChange Handler, Policy Handler, Dashboard and Inventory, each with corresponding Helm charts under OOM (https://git.onap.org/oom/tree/kubernetes/dcaegen2/components). Once DCAE platform components are up and running, rest of DCAE service components required for ONAP flow are deployed via bootstrap POD, which invokes Cloudify Manager API with Blueprints for various DCAE components that are needed for the built-in collections and control loops flow support. + +To keep the ONAP footprint minimal, only minimal set of MS (required for ONAP Integration usecases) are deployed via bootstrap pod. Rest of service blueprints are available for operator to deploy on-demand as required. + +More details of the DCAE deployment can be found under Installation section. + + +Usage Scenarios +--------------- + +For ONAP DCAE participates in the following use cases. + +- vDNS: VES collector, TCA analytics + +- vFW: VES collector, TCA analytics + +- vCPE: VES collector, TCA analytics + +- vVoLTE: VES collector, Holmes analytics + +- CCVPN : RestConf Collector, Holmes + +- BBS : VES Collector, PRH, BBS-Event Processor, VES-Mapper, RESTConf Collector + +- 5G Bulk PM : DataFile Collector, PM-Mapper, HV-VES + +- 5G OOF SON: VES collector, SON-Handler + +- 5G E2E Network Slicing: VES collector, Slice Analysis, DES, PM-Mapper, DFC, Datalake feeder + + +In addition, DCAE supports on-demand deployment and configuration of service components via CLAMP. In such case CLAMP invokes the deployment and configuration of additional TCA instances. diff --git a/docs/sections/services/serviceindex.rst b/docs/sections/services/serviceindex.rst index 2f8dd61e..0a968c91 100644 --- a/docs/sections/services/serviceindex.rst +++ b/docs/sections/services/serviceindex.rst @@ -1,26 +1,27 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 - - -DCAE Service components -======================= - -.. Add or remove sections below as appropriate for the platform component. - -.. toctree:: - :maxdepth: 1 - - ./snmptrap/index.rst - ./ves-http/index.rst - ./ves-hv/index.rst - ./mapper/index.rst - ./prh/index.rst - ./dfc/index.rst - ./heartbeat-ms/index.rst - ./pm-mapper/index.rst - ./pm-subscription-handler/index.rst - ./bbs-event-processor/index.rst - ./son-handler/index.rst - ./restconf/index.rst - ./tcagen2-docker/index.rst - ./datalake-handler/index.rst \ No newline at end of file +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +DCAE Service components +======================= + +.. Add or remove sections below as appropriate for the platform component. + +.. toctree:: + :maxdepth: 1 + + ./snmptrap/index.rst + ./ves-http/index.rst + ./ves-hv/index.rst + ./mapper/index.rst + ./prh/index.rst + ./dfc/index.rst + ./heartbeat-ms/index.rst + ./pm-mapper/index.rst + ./pm-subscription-handler/index.rst + ./bbs-event-processor/index.rst + ./son-handler/index.rst + ./restconf/index.rst + ./tcagen2-docker/index.rst + ./datalake-handler/index.rst + ./slice-analysis-ms/index.rst \ No newline at end of file diff --git a/docs/sections/services/slice-analysis-ms/index.rst b/docs/sections/services/slice-analysis-ms/index.rst new file mode 100644 index 00000000..252a2f34 --- /dev/null +++ b/docs/sections/services/slice-analysis-ms/index.rst @@ -0,0 +1,51 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + + +Slice Analysis MS +================= + +.. Add or remove sections below as appropriate for the platform component. + + +**Slice Analysis MS** is introduced in ONAP for: +(a) Analyzing the FM/PM data (reported from the xNFs) and KPI data (computed from PM data) related to various slice instances (NSIs), slice sub-net instances (NSSIs) and services catered to by the slices (S-NSSAIs). +(b) Determining and triggering appropriate Control Loop actions based on the analysis above +(c) Receiving recommendations for closed loop actions from ML or Analytics engines, performing validity checks, etc. to determine if the actions can be carried out, and then triggering the appropriate Control Loop + +In Guilin, this MS: +- Performs simple Closed Loop control action for the RAN slice sub-net instances based on simple analysis of a set of RAN PM data +- Initiates simple control loop actions in the RAN based on recommendation from an ML engine for RAN slice sub-net instance re-configuration + +For the Control loops, SO, VES Collector, Policy, DMaaP and CCSDK/SDN-R, AAI, PM-mapper and DFC are involved apart from this MS. + +Flow diagrams are available at: +https://wiki.onap.org/display/DW/Closed+Loop +https://wiki.onap.org/display/DW/Intelligent+Slicing+flow + + +Slice Analysis MS overview and functions +---------------------------------------- + +.. toctree:: + :maxdepth: 1 + + ./slice_analysis_ms_overview.rst + + +Slice Analysis MS Installation Steps +------------------------------------ + +.. toctree:: + :maxdepth: 1 + + ./installation.rst + + +Slice Analysis MS Troubleshooting Steps +--------------------------------------- + +.. toctree:: + :maxdepth: 1 + + ./slice_analysis_ms_troubleshooting.rst \ No newline at end of file diff --git a/docs/sections/services/slice-analysis-ms/installation.rst b/docs/sections/services/slice-analysis-ms/installation.rst new file mode 100644 index 00000000..ebe2b782 --- /dev/null +++ b/docs/sections/services/slice-analysis-ms/installation.rst @@ -0,0 +1,75 @@ +Installation +============ + +Slice Analysis MS can be deployed using cloudify blueprint using bootstrap container of an existing DCAE deployment. + +Deployment Pre-requisites +~~~~~~~~~~~~~~~~~~~~~~~~~ +- DCAE and DMaaP pods should be up and running. + +- DMaaP Bus Controller PostInstalls job should have completed successfully (executed as part of an OOM install). + +- PM mapper service should be running. + +- Config DB service should be running. + +- Make sure that cfy is installed and configured to work with the Cloudify deployment. + + +Deployment steps +~~~~~~~~~~~~~~~~ +1. Execute bash on the bootstrap Kubernetes pod. + + kubectl -n onap exec -it bash + +2. Go to the /blueprints directory. + + Check that the tag_version in the slice-analysis-ms blueprint is correct for the release + of ONAP that it is being installed on see Nexus link below for slice-analysis-ms for tag_versions. + Nexus link: https://nexus3.onap.org/#browse/browse:docker.public:v2%2Fonap%2Forg.onap.dcaegen2.services.components.slice-analysis-ms%2Ftags + +3. Create an input file. + +4. Run the Cloudify install command to install the slice-analysis-ms with the blueprint and the newly created input file k8s-slice-input.yaml. + + $ cfy install k8s-slice-analysis-ms.yaml -i k8s-slice-input.yaml --blueprint-id sliceanalysisms + + Details of the sample output are available at: + https://wiki.onap.org/pages/viewpage.action?pageId=92998809. + +5. To un-deploy + + $ cfy uninstall sliceanalysisms + + +Application configurations +~~~~~~~~~~~~~~~~~~~~~~~~~~ ++-------------------------------+------------------------------------------------+ +|Configuration | Description | ++===============================+================================================+ +|samples | Minimum number of samples to be present | +| | for analysis | ++-------------------------------+------------------------------------------------+ +|minimumPercentageChange | Minimum percentage of configuration change | +| | above which control loop should be triggered | ++-------------------------------+------------------------------------------------+ +|initialDelaySeconds | Initial delay in milliseconds for the consumer | +| | thread to start after the application startup | ++-------------------------------+------------------------------------------------+ +|config_db | Host where the config DB application is running| ++-------------------------------+------------------------------------------------+ +|performance_management_topicurl| Dmaap Topic URL to which PM data are posted | +| | by network functions | ++-------------------------------+------------------------------------------------+ +|dcae_cl_topic_url | Dmaap topic to which onset message to trigger | +| | the control loop are posted | ++-------------------------------+------------------------------------------------+ +|dcae_cl_response_topic_url | Dmaap topic URL to which Policy posts the | +| | message after successful control loop trigger | ++-------------------------------+------------------------------------------------+ +|intelligent_slicing_topic_url | Dmaap topic URL to which ML MS posts the | +| | messages | ++-------------------------------+------------------------------------------------+ +|dmaap_polling_interval | Dmaap Polling interval in milliseconds | ++-------------------------------+------------------------------------------------+ + diff --git a/docs/sections/services/slice-analysis-ms/slice_analysis_ms_arch.jpg b/docs/sections/services/slice-analysis-ms/slice_analysis_ms_arch.jpg new file mode 100644 index 0000000000000000000000000000000000000000..64ead8ab6f37cb2e32228427fe2a521e061dc772 GIT binary patch literal 58211 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 |X^*YUTje~G1{~{8$Hl+43*s~m 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 –namespace onap \ No newline at end of file -- 2.16.6