├── .gitignore ├── 404.html ├── LICENSE ├── OpenNESS_Logo.ai ├── README.md ├── _data └── navbars │ ├── applications-onboarding.yml │ ├── building-blocks.yml │ ├── cloud-adapters.yml │ ├── devkits.yml │ ├── edge-applications.yml │ ├── getting-started.yml │ ├── introduction.yml │ ├── reference-architectures.yml │ └── release-history.yml ├── _includes ├── breadcrumbs.html ├── footer.html ├── header.html ├── metainfo.html ├── reading-time.html └── sideNavigation.html ├── _layouts ├── pdf.html ├── smartedge-open.html └── smartedge-open_pdf.html ├── _plugins ├── breadcrumbs.rb └── drops │ └── breadcrumb_item.rb ├── css ├── custom.css └── instantsearch.min.css ├── doc ├── applications-onboard │ ├── cups-howto-images │ │ ├── edit.png │ │ ├── first_access.png │ │ ├── userplane5.png │ │ ├── userplane5_update.png │ │ ├── userplane5_update_thenlist.png │ │ ├── userplane_create.png │ │ ├── userplane_create_thenlist.png │ │ ├── userplane_delete.png │ │ ├── userplane_delete_thenlist.png │ │ └── wireshark_example.png │ ├── dns-images │ │ ├── DNS.png │ │ └── dns1.png │ ├── eaa-images │ │ ├── eaa-comp.png │ │ ├── eaa_notifications.svg │ │ ├── eaa_services.svg │ │ └── eaa_subscriptions.svg │ ├── index.html │ ├── network-edge-app-onboarding-images │ │ └── ovc-smartcity-setup.png │ ├── network-edge-applications-onboarding.md │ ├── smartedge-open-certsigner.md │ ├── smartedge-open-eaa.md │ ├── smartedge-open-edgedns.md │ ├── smartedge-open-interface-service.md │ ├── smartedge-open-network-edge-vm-support.md │ ├── using-smartedge-open-cnca-images │ │ ├── af_pfd_transaction_home.png │ │ ├── af_subscription_create.png │ │ ├── af_subscription_create_part1.png │ │ ├── af_subscription_create_part2.png │ │ ├── af_subscription_create_part3.png │ │ ├── af_subscription_delete.png │ │ ├── af_subscription_display.png │ │ ├── af_subscription_display_home.png │ │ ├── af_subscription_edit.png │ │ ├── af_subscription_patch.png │ │ ├── ngc_af_service_config_log.png │ │ ├── ngc_homepage.png │ │ ├── ngc_pods_list_output.png │ │ ├── ngc_services_list_output.png │ │ ├── oam_services_create.png │ │ ├── oam_services_delete.png │ │ ├── oam_services_display.png │ │ ├── oam_services_edit.png │ │ ├── oam_services_home.png │ │ ├── pfd_transaction_create.png │ │ ├── pfd_transaction_delete.png │ │ ├── pfd_transaction_delete_appID.png │ │ ├── pfd_transaction_display.png │ │ ├── pfd_transaction_edit.png │ │ └── pfd_transaction_edit_appID.png │ └── using-smartedge-open-cnca.md ├── applications │ ├── app-guide │ │ ├── smartedge-open_apps.png │ │ ├── smartedge-open_cloudadapter.png │ │ └── smartedge-open_openvinoexecflow.png │ ├── index.html │ ├── ovc-images │ │ ├── data-centric-design.png │ │ ├── ovc-pipeline.png │ │ ├── ovc-vm.png │ │ ├── scope.png │ │ ├── screenshot.gif │ │ ├── smart-city-app.png │ │ └── smart-city-architecture.png │ ├── service-mesh-images │ │ ├── bookinfo-landing-page.png │ │ ├── grafana-istio.png │ │ ├── grafana-telemetry-rule.png │ │ ├── kiali-book-info.png │ │ ├── kiali-canary-deployment.png │ │ ├── kiali-login.png │ │ ├── prometheus-istio.png │ │ └── video-analytics-service-mesh.png │ ├── smartedge-open_appguide.md │ ├── smartedge-open_openvino.md │ ├── smartedge-open_ovc.md │ ├── smartedge-open_service_mesh.md │ ├── smartedge-open_va_services.md │ └── va-service-images │ │ ├── va-services-deployment.png │ │ └── va-services-flow.png ├── arch-images │ ├── customers.png │ ├── locations.png │ ├── modular.png │ ├── multi-location-edge.png │ ├── resource.png │ ├── smartedge-open-arc.png │ ├── smartedge-open-emco.png │ ├── smartedge-open-flexran.png │ ├── smartedge-open-ovc.png │ ├── smartedge-open_overview.png │ └── start.png ├── architecture.md ├── building-blocks │ ├── dataplane │ │ ├── iap-images │ │ │ ├── iap1.png │ │ │ ├── iap2.png │ │ │ └── iap3.png │ │ ├── index.html │ │ ├── nts-images │ │ │ ├── nts1.png │ │ │ └── nts2.png │ │ ├── ovn_images │ │ │ ├── ovncni_cluster.png │ │ │ ├── smartedge-open_ovn.png │ │ │ └── smartedge-open_ovnovs.png │ │ ├── smartedge-open-interapp.md │ │ ├── smartedge-open-ovn.md │ │ └── smartedge-open-userspace-cni.md │ ├── emco │ │ ├── index.html │ │ ├── smartedge-open-emco-images │ │ │ ├── emco-dig-create.png │ │ │ ├── emco-dig-instantiate.png │ │ │ ├── emco-geo-distributed.png │ │ │ ├── emco-istio-arch.png │ │ │ ├── emco-istio-auth.png │ │ │ ├── emco-register-controllers.png │ │ │ ├── emco-status-monitoring.png │ │ │ ├── smartedge-open-emco-arch.png │ │ │ ├── smartedge-open-emco-lccl.png │ │ │ ├── smartedge-open-emco-smtc.png │ │ │ ├── smartedge-open-emco-smtcui.png │ │ │ └── smartedge-open-emco-topology.png │ │ └── smartedge-open-emco.md │ ├── enhanced-platform-awareness │ │ ├── acc100-images │ │ │ ├── acc100-diagram.png │ │ │ └── acc100-k8s.png │ │ ├── biosfw-images │ │ │ └── smartedge-open_biosfw.png │ │ ├── cmk-images │ │ │ ├── cmk1.png │ │ │ └── cmk2.png │ │ ├── fpga-images │ │ │ ├── smartedge-open-fpga1.png │ │ │ ├── smartedge-open-fpga2.png │ │ │ ├── smartedge-open-fpga3.png │ │ │ └── smartedge-open-fpga4.png │ │ ├── hddl-images │ │ │ ├── hddlservice.png │ │ │ ├── smartedge-open_HDDL.png │ │ │ └── smartedge-open_dynamic.png │ │ ├── index.html │ │ ├── multussriov-images │ │ │ ├── multus-pod-image.svg │ │ │ ├── sriov-cni.png │ │ │ └── sriov-dp.png │ │ ├── nfd-images │ │ │ ├── nfd0.png │ │ │ ├── nfd1.png │ │ │ └── nfd2.png │ │ ├── smartedge-open-acc100.md │ │ ├── smartedge-open-bios.md │ │ ├── smartedge-open-dedicated-core-cmk-deprecated.md │ │ ├── smartedge-open-dedicated-core.md │ │ ├── smartedge-open-fpga.md │ │ ├── smartedge-open-hugepage.md │ │ ├── smartedge-open-node-feature-discovery.md │ │ ├── smartedge-open-qat.md │ │ ├── smartedge-open-rmd.md │ │ ├── smartedge-open-sriov-multiple-interfaces.md │ │ ├── smartedge-open-telemetry.md │ │ ├── smartedge-open-topology-manager.md │ │ ├── smartedge-open-vcac-a.md │ │ ├── smartedge-open_hddl.md │ │ ├── telemetry-images │ │ │ ├── architecture.svg │ │ │ ├── cadvisor_metric.png │ │ │ ├── collectd_metric.png │ │ │ ├── grafana-add-panel.png │ │ │ ├── grafana-dash-setting.png │ │ │ ├── grafana-new-dash.png │ │ │ ├── grafana-panel-settings.png │ │ │ ├── grafana-panel.png │ │ │ ├── grafana-pcm-dashboard.png │ │ │ ├── grafana-save-dash.png │ │ │ ├── grafana-save.png │ │ │ ├── grafana-settings.png │ │ │ ├── grafana_login.png │ │ │ ├── node_exporter_metric.png │ │ │ ├── pcm-metrics.png │ │ │ ├── pcm-stats.png │ │ │ ├── prometheus_graph.png │ │ │ ├── prometheus_metrics.png │ │ │ └── prometheus_targets.png │ │ ├── tm-images │ │ │ ├── tm1.png │ │ │ └── tm2.png │ │ └── vcaca-images │ │ │ ├── smart-city-app-vcac-a.png │ │ │ ├── using-vcac-a-telemetry.png │ │ │ └── vcac-a-vpu-metrics.png │ └── index.html ├── cloud-adapters │ ├── awsgg-images │ │ ├── smartedge-open_cloudadapter.png │ │ └── smartedge-open_overview.png │ ├── baidu-cloudadapter-images │ │ ├── smartedge-open_baiduedge_end2end_demosetup.png │ │ └── smartedge-open_baiduedge_integration_arch.png │ ├── index.html │ ├── smartedge-open_awsgreengrass.md │ └── smartedge-open_baiducloud.md ├── devkits │ └── smartedge-open-azure-devkit.md ├── flavors.md ├── getting-started │ ├── converged-edge-experience-kits.md │ ├── harbor-registry.md │ ├── index.html │ ├── kubernetes-dashboard.md │ ├── non-root-user.md │ ├── smartedge-open-cluster-setup-images │ │ └── harbor_ui.png │ └── smartedge-open-cluster-setup.md ├── index.html ├── orchestration │ ├── index.html │ ├── smartedge-open-helm-images │ │ └── smartedge-open-helm-arch.png │ └── smartedge-open-helm.md ├── overview.md └── reference-architectures │ ├── core-network │ ├── epc-images │ │ ├── smartedge-open_epc1.png │ │ ├── smartedge-open_epc2.png │ │ ├── smartedge-open_epc3.png │ │ ├── smartedge-open_epc_cnca_1.png │ │ ├── smartedge-open_epcconfig.png │ │ ├── smartedge-open_epctest1.png │ │ ├── smartedge-open_epctest2.png │ │ ├── smartedge-open_epctest3.png │ │ ├── smartedge-open_epctest4.png │ │ ├── smartedge-open_epcupf_add.png │ │ ├── smartedge-open_epcupf_del.png │ │ ├── smartedge-open_epcupf_get.png │ │ └── smartedge-open_highlevel.png │ ├── index.html │ ├── ngc-images │ │ ├── 5g_edge_data_paths.png │ │ ├── 5g_edge_deployment_scenario1.png │ │ ├── 5g_edge_deployment_scenario2.png │ │ ├── 5g_edge_deployment_scenario3.png │ │ ├── 5g_openess_components.png │ │ ├── 5g_openess_microservices.png │ │ ├── 5g_system_architecture.png │ │ ├── OAuth2.png │ │ ├── PFD_Management_transaction_add.png │ │ ├── PFD_Management_transaction_del.png │ │ ├── PFD_Management_transaction_get.png │ │ ├── PFD_Management_transaction_update.png │ │ ├── e2e_edge_deployment_flows.png │ │ ├── oam_af_service_add.png │ │ ├── oam_af_service_del.png │ │ ├── oam_af_service_get.png │ │ ├── oam_af_service_update.png │ │ ├── traffic_subscription_add.png │ │ ├── traffic_subscription_del.png │ │ ├── traffic_subscription_get.png │ │ └── traffic_subscription_update.png │ ├── ngc_flows │ │ ├── AF_traffic_influence_add.uml │ │ ├── AF_traffic_influence_delete.uml │ │ ├── AF_traffic_influence_get.uml │ │ ├── AF_traffic_influence_update.uml │ │ ├── PFD_Management_transaction_delete.uml │ │ ├── PFD_Management_transaction_get.uml │ │ ├── PFD_Managment_transaction_add.uml │ │ ├── PFD_management_transaction_update.uml │ │ ├── e2e_config_flow_for_5g_edge.uml │ │ ├── ngcoam_af_service_add.uml │ │ ├── ngcoam_af_service_delete.uml │ │ ├── ngcoam_af_service_get.uml │ │ └── ngcoam_af_service_update.uml │ ├── smartedge-open-core.png │ ├── smartedge-open_epc.md │ ├── smartedge-open_ngc.md │ └── smartedge-open_upf.md │ └── index.html ├── index.html ├── js ├── custom.js └── instantsearch.min.js ├── schema ├── 5goam │ ├── 5goam.swagger.json │ └── 5goam.swagger.yaml ├── af │ ├── af.openapi.json │ ├── af.openapi.yaml │ ├── af_pfd.openapi.json │ └── af_pfd.openapi.yaml ├── auth │ └── auth.swagger.json ├── controller │ ├── README.md │ ├── api.swagger.json │ └── api.swagger.yml ├── cups │ ├── README.md │ └── cups.swagger.json ├── eaa │ ├── README.md │ └── eaa.swagger.json ├── ela │ └── README.md ├── eva │ └── README.md ├── kube-ovn │ └── README.md ├── nef │ ├── nef_pfd_management_openapi.json │ ├── nef_pfd_management_openapi.yaml │ ├── nef_traffic_influence_openapi.json │ └── nef_traffic_influence_openapi.yaml └── pb │ ├── auth.proto │ ├── cups.proto │ ├── eaa.proto │ ├── ela.proto │ ├── eva.proto │ └── kube-ovn.proto └── smartedge-open_releasenotes.md /.gitignore: -------------------------------------------------------------------------------- 1 | .jekyll-metadata 2 | Gemfile 3 | Gemfile.lock 4 | _config.yml 5 | _site/ 6 | *.pdf 7 | .history/doc/overview_20201212222334.md 8 | .history/doc/overview_20201212223809.md 9 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | layout: smartedge-open 8 | --- 9 | 32 |
33 |
34 |

Page Not Found!

35 |

Sorry, you may not be able to visit requested page because of following reasons:

36 |
    37 |
  1. An out-of-date bookmark/favourite
  2. 38 |
  3. A search engine that has an out-of-date listing for this site
  4. 39 |
  5. A mistyped address
  6. 40 |
  7. You have no access to this page
  8. 41 |
  9. The requested resource was not found.
  10. 42 |
  11. An error has occurred while processing your request.
  12. 43 |
44 |
45 |
-------------------------------------------------------------------------------- /OpenNESS_Logo.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/OpenNESS_Logo.ai -------------------------------------------------------------------------------- /_data/navbars/applications-onboarding.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | title: "Application Onboarding" 5 | path: /applications-onboard/ 6 | order: 3 7 | section: 8 | - title: Network Edge Applications Onboarding 9 | path: /doc/applications-onboard/network-edge-applications-onboarding 10 | meta_title: Smart Edge Open Network Edge Application On-Boarding Process 11 | meta_description: Smart Edge Open application on-boarding process for the Network Edge provides instructions on how to deploy an application from the Edge Controller to Edge Nodes in the cluster. 12 | 13 | - title: Edge DNS 14 | path: /doc/applications-onboard/smartedge-open-edgedns 15 | meta_title: Smart Edge Open Provides Edge DNS and Supports DNS Microservice 16 | meta_description: Smart Edge Open edge platform is required to provides access to DNS. The edge platform receives the application DNS rules from the controller. 17 | 18 | - title: Edge Application Agent (EAA) 19 | path: /doc/applications-onboard/smartedge-open-eaa 20 | meta_title: Edge Application Agent (EAA) 21 | meta_description: Smart Edge Open enables Edge Applications to produce, discover and consume services that are available on the Smart Edge Open cluster through the Edge Application Agent (EAA) APIs. 22 | 23 | - title: Certificate Signing 24 | path: /doc/applications-onboard/smartedge-open-certsigner 25 | meta_title: Certificate Signing 26 | meta_description: Each application that needs the TLS authentication certificate should generate it using the Certificate Signer by sending a CSR via Certificate Requester 27 | 28 | - title: Interface Service 29 | path: /doc/applications-onboard/smartedge-open-interface-service 30 | meta_title: Smart Edge Open Applications Onboard - Smart Edge Open Interface Service 31 | meta_description: Smart Edge Open Interface service is an application running in Kubernetes pod on every node of Smart Edge Open Kubernetes cluster and provides OVS bridge, enabling external traffic scenarios. 32 | 33 | - title: VM support in Smart Edge Open for Network Edge 34 | path: /doc/applications-onboard/smartedge-open-network-edge-vm-support 35 | meta_title: VM support in Smart Edge Open for Network Edge 36 | meta_description: VM support in Smart Edge Open for Network Edge - Setup, deployment, and management considerations. 37 | 38 | - title: Core Network Configuration Agent (CNCA) 39 | path: /doc/applications-onboard/using-smartedge-open-cnca 40 | meta_title: Smart Edge Open 4G/LTE Core Configuration Using CNCA 41 | meta_description: CNCA provides a kubectl plugin to configure the 4G/LTE Core network. Kubernetes adopts plugins concepts to extend its functionality executes CNCA related functions. 42 | -------------------------------------------------------------------------------- /_data/navbars/cloud-adapters.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | title: "Cloud Adapters" 5 | path: /cloud-adapters/ 6 | order: 6 7 | section: 8 | - title: AWS Greengrass 9 | path: /doc/cloud-adapters/smartedge-open_awsgreengrass 10 | meta_title: Smart Edge Open Integration with AWS Greengrass 11 | meta_description: Smart Edge Open is an open source software platform that enables easy orchestration of edge services across diverse network platform and access technologies in multi-cloud environments. 12 | 13 | - title: Baidu Cloud 14 | path: /doc/cloud-adapters/smartedge-open_baiducloud 15 | meta_title: Smart Edge Open Integration with Baidu OpenEdge 16 | meta_description: Smart Edge Open can integrate with Baidu Cloud Connector, OpenEdge which is Edge IoT Gateway. Baidu Edge solution is called as Baidu® IntelliEdge. 17 | -------------------------------------------------------------------------------- /_data/navbars/devkits.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | title: "Development Kits" 5 | path: /devkits/ 6 | order: 7 7 | section: 8 | - title: Smart Edge Open Development Kit for Microsoft Azure 9 | path: /doc/devkits/smartedge-open-azure-devkit 10 | meta_title: Smart Edge Open Development Kit for Microsoft Azure 11 | meta_description: This devkit supports the use of Smart Edge Open in cloud solutions. It leverages the Microsoft Azure Stack for Smart Edge Open deployment. 12 | -------------------------------------------------------------------------------- /_data/navbars/edge-applications.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | title: "Edge Applications" 5 | path: /applications/ 6 | order: 5 7 | section: 8 | - title: Application Development & Porting Guide 9 | path: /doc/applications/smartedge-open_appguide 10 | meta_title: Application Development and Porting Guide 11 | meta_description: Smart Edge Open is an open source software toolkit to enable easy orchestration of edge services across diverse network platform and access technologies in multi-cloud environments. 12 | 13 | - title: OVC Smart City Application 14 | path: /doc/applications/smartedge-open_ovc 15 | meta_title: Open Visual Cloud Smart City Application on Smart Edge Open 16 | meta_description: The Open Visual Cloud is an open source project that offers a set of pre-defined reference pipelines for various target visual cloud use cases. 17 | 18 | - title: Intel OpenVINO Sample Application 19 | path: /doc/applications/smartedge-open_openvino 20 | meta_title: OpenVINO Sample Application in Smart Edge Open 21 | meta_description: OpenVINO toolkit, short for Open Visual Inference and Neural network Optimization toolkit, provides improved neural network performance on Intel processors. 22 | 23 | - title: Smart Edge Open Video Analytics Services 24 | path: /doc/applications/smartedge-open_va_services 25 | meta_title: Smart Edge Open Video Analytics Services 26 | meta_description: The Video Analytics Services provided by Smart Edge Open to enable third party edge application to deploy and use hardware optimized video analytics pipelines. 27 | 28 | - title: Smart Edge Open Service Mesh 29 | path: /doc/applications/smartedge-open_service_mesh 30 | meta_title: Smart Edge Open Service Mesh 31 | meta_description: Service mesh acts as a middleware between the edge applications/services and the Smart Edge Open platform providing abstractions for traffic management, observability and security for the edge micro-services. 32 | -------------------------------------------------------------------------------- /_data/navbars/getting-started.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | title: "Getting Started" 5 | path: /getting-started/ 6 | order: 1 7 | section: 8 | - title: Smart Edge Open Cluster Setup 9 | path: /doc/getting-started/smartedge-open-cluster-setup 10 | meta_title: Controller and Edge Node Setup 11 | meta_description: Smart Edge Open Network Edge Controller and Edge nodes must be set up on different machines and provided in the inventory may reboot during the installation. 12 | 13 | - title: Converged Edge Experience Kits 14 | path: /doc/getting-started/converged-edge-experience-kits 15 | meta_title: Smart Edge Open Experience Kits Easy Setup of Smart Edge Open in Network Edge 16 | meta_description: Smart Edge Open Experience Kits repository contains easy setup of Smart Edge Open in Network Edge mode. 17 | 18 | - title: Non-root User in Smart Edge Open 19 | path: /doc/getting-started/non-root-user 20 | meta_title: The non-root user on the Smart Edge Open Platform 21 | meta_description: Smart Edge Open provides a possibility to install all required files on Kubernetes a control plane and nodes with or without root rights. 22 | 23 | - title: Harbor Registry Service 24 | path: /doc/getting-started/harbor-registry 25 | meta_title: Harbor Registry Service in Smart Edge Open 26 | meta_description: Enabling Harbor registry service in Smart Edge Open 27 | 28 | - title: Kubernetes Dashboard in Smart Edge Open 29 | path: /doc/getting-started/kubernetes-dashboard 30 | meta_title: Kubernetes Dashboard in Smart Edge Open 31 | meta_description: Smart Edge Open supports Kubernetes Dashboard that can be used to inspect and manage Kubernetes cluster. 32 | -------------------------------------------------------------------------------- /_data/navbars/introduction.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | title: "Introduction" 5 | path: /introduction/ 6 | order: 0 7 | section: 8 | - title: Smart Edge Open Overview 9 | path: /doc/overview 10 | meta_title: Smart Edge Open Overview 11 | meta_description: Smart Edge Open is an edge computing software toolkit that enables highly optimized and performant edge platforms to on-board and manage applications and network functions with cloud-like agility across any type of network. 12 | 13 | - title: Smart Edge Open Architecture & Solution Overview 14 | path: /doc/architecture 15 | meta_title: Smart Edge Open Architecture And Solution Overview 16 | meta_description: Smart Edge Open is an open source software to enable easy orchestration of edge services and network functions across diverse network platform in multi-cloud environments. 17 | 18 | - title: Smart Edge Open Deployment Flavors 19 | path: /doc/flavors 20 | meta_title: Smart Edge Open Deployment Flavors 21 | meta_description: Pre-defined deployment flavors using Smart Edge Open that are available in the Smart Edge Open Experience Kits. 22 | 23 | - title: Smart Edge Open Helm 24 | path: /doc/orchestration/smartedge-open-helm 25 | meta_title: Smart Edge Open Helm 26 | meta_description: Smart Edge Open supports Helm for user to package, configure, and deploy applications and services onto Kubernetes clusters. 27 | -------------------------------------------------------------------------------- /_data/navbars/reference-architectures.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | title: "Reference Architectures" 5 | path: /reference-architectures/ 6 | order: 4 7 | section: 8 | - title: Core Network 9 | path: 10 | section: 11 | - title: Evolved Packet Core (EPC) 12 | path: /doc/reference-architectures/core-network/smartedge-open_epc 13 | meta_title: Edge Cloud Deployment with 3GPP 4G LTE CUPS of EPC 14 | meta_description: Smart Edge Open is an open source edge computing platform that enables Service Providers and Enterprises to deploy applications and services on a network edge. 15 | 16 | - title: 5G Non-Stand Alone (NSA) 17 | path: /doc/reference-architectures/core-network/smartedge-open_5g_nsa 18 | meta_title: Edge Cloud Deployment with 3GPP 5G Non Stand Alone 19 | meta_description: Smart Edge Open is an open source edge computing platform that enables Service Providers and Enterprises to deploy applications and services on a network edge. 20 | 21 | - title: Next-Gen Core (NGC) 22 | path: /doc/reference-architectures/core-network/smartedge-open_ngc 23 | meta_title: Edge Cloud Deployment with 3GPP 5G Stand Alone 24 | meta_description: Smart Edge Open NGC provides reference REST-based APIs along with 3GPP standard traffic influencing APIs to address some of these major challenges in 5G edge deployments. 25 | 26 | - title: User Plane Function (UPF) 27 | path: /doc/reference-architectures/core-network/smartedge-open_upf 28 | meta_title: User Plane Function (UPF) 29 | meta_description: User Plane Function is the evolution of Control and User Plane Separation which part of the Rel.14 in Evolved Packet core. CUPS enabled PGW to be split into PGW-C and PGW-U. 30 | 31 | - title: Radio Access Network 32 | path: 33 | section: 34 | - title: Smart Edge Open Radio Access Network 35 | path: /doc/reference-architectures/ran/smartedge-open_ran 36 | meta_title: Smart Edge Open Radio Access Network is the Edge of Wireless Network 37 | meta_description: Smart Edge Open Radio Access Network is the edge of the wireless network. Smart Edge Open Intel FlexRAN uses as a reference 4G and 5G base station for 4G and 5G end-to-end testing. 38 | 39 | - title: O-RAN Front Haul Sample Application in Smart Edge Open 40 | path: /doc/reference-architectures/ran/smartedge-open_xran 41 | meta_title: 5GNR FlexRAN Front Haul functional units deployment with Smart Edge Open based on O-RAN specifications at the Network Edge 42 | meta_description: 5GNR FlexRAN Front Haul functional units deployment with Smart Edge Open based on O-RAN specifications at the Network Edge. 43 | -------------------------------------------------------------------------------- /_data/navbars/release-history.yml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | title: "Release history" 5 | path: /release-notes/ 6 | order: 8 7 | section: 8 | - title: Release Notes 9 | path: /smartedge-open_releasenotes 10 | meta_title: Smart Edge Open Release Notes 11 | meta_description: Smart Edge Open Release Notes provides high level system features, issues, and limitations information for Smart Edge Open. 12 | -------------------------------------------------------------------------------- /_includes/breadcrumbs.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | {%- assign pagePath = page.path | remove: ".md" | prepend: "/" -%} 7 | {%- for breadcrumb in include.section -%} 8 | {%- if breadcrumb.section -%} 9 | {%- include breadcrumbs.html section=breadcrumb.section -%} 10 | {%- else -%} 11 | {%- if pagePath == breadcrumb.path -%} 12 | > {{breadcrumb.title}} 13 | {%- endif -%} 14 | {%- endif -%} 15 | {%- endfor -%} -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 21 | 22 | 23 | 24 | 25 | 26 | 55 | 56 | 57 | 58 | 80 | -------------------------------------------------------------------------------- /_includes/header.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 13 | 84 | -------------------------------------------------------------------------------- /_includes/metainfo.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | {%- assign pagePath = page.path | remove: ".md" | prepend: "/" -%} 7 | {%- assign title = page.name | replace: "-"," " | replace: "_"," " | split: ".md" | first -%} 8 | {%- assign pageTitle = title | split: ' ' -%} 9 | {%- capture pageTitleUpper -%}{%- for word in pageTitle -%}{{ word | capitalize }} {%- endfor -%}{%- endcapture -%} 10 | 11 | {%- for metainfo in include.meta -%} 12 | {%- if metainfo.section -%} 13 | {%- include metainfo.html meta=metainfo.section -%} 14 | {%- else -%} 15 | {%- if pagePath == metainfo.path -%} 16 | {% if metainfo.meta_description != nil %} 17 | 18 | {% else %} 19 | 20 | {%- endif -%} 21 | {% if metainfo.meta_title != nil %} 22 | {{metainfo.meta_title}} 23 | {% else %} 24 | Smart Edge Open Documentation - {{pageTitleUpper}} 25 | {%- endif -%} 26 | {%- endif -%} 27 | {%- endif -%} 28 | {%- endfor -%} -------------------------------------------------------------------------------- /_includes/reading-time.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | {% assign words = content | number_of_words %} 7 | {% assign readTime = words | divided_by:180 | round %} 8 | 9 | {% if readTime == 0 %} 10 | {{ ' LESS THAN 1 MINUTE READ ' }} 11 | {% else %} 12 | {{ readTime | append: ' MINUTE READ ' }} 13 | {% endif %} -------------------------------------------------------------------------------- /_includes/sideNavigation.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | {%- for item in include.sidebar -%} 7 | 8 | {%- if item.section -%} 9 | {%- capture href -%}javascript:void(0){%- endcapture -%} 10 | {%- else -%} 11 | {%- capture href -%}{{ site.baseurl }}{{ item.path }}{%- endcapture -%} 12 | {%- endif -%} 13 | 14 | 15 | {%- if item.section -%} 16 | 17 |
  • 18 | 19 | {{item.title}} 20 | 23 |
  • 24 | {%- else -%} 25 | {%- assign pageName = page.path | prepend: "/" | replace: ".md","" -%} 26 | 27 | {%- if pageName == item.path -%} 28 | {%- assign activeClass = 'active' -%} 29 | {%- else -%} 30 | {%- assign activeClass = '' -%} 31 | {%- endif -%} 32 | 33 | {%- assign lastElement = href | split: "/" | last -%} 34 | {%- assign pageUrl = href | remove: lastElement -%} 35 | {%- assign pageUrl = pageUrl | split: "/" | last -%} 36 | {%- assign pageTitle = page.path | remove: ".md" | split: "/" -%} 37 | 38 | {%- if pageTitle[2] == pageUrl -%} 39 | {%- assign style = "display:block" -%} 40 | {%- else -%} 41 | {%- assign style = "display:none" -%} 42 | {%- endif -%} 43 | 44 |
  • 45 | {{item.title}} 46 |
  • 47 | {%- endif -%} 48 | {%- endfor -%} 49 | -------------------------------------------------------------------------------- /_layouts/pdf.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | {% highlight html %} 7 | {% raw %} 8 | 9 | 10 | {% include head.html %} 11 | 12 | {{ content }} 13 | 14 | 15 | {% endraw %} 16 | {% endhighlight %} 17 | -------------------------------------------------------------------------------- /_layouts/smartedge-open.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | {%- assign pageName = page.path | split: "/" -%} 7 | 8 | {%- if pageName[1] -%} 9 | {%- assign pageName = pageName[1] | prepend: "/" | append: "/" | replace: ".md","" -%} 10 | {%- else -%} 11 | {%- assign pageName = pageName[0] | prepend: "/" | append: "/" | replace: ".md","" -%} 12 | {%- endif -%} 13 | 14 | {%- assign navigations = "" | split:"|" -%} 15 | {%- for navbars_data in site.data.navbars -%} 16 | {%- assign nav = navbars_data[1] -%} 17 | {%- assign navigations = navigations | push: nav -%} 18 | {%- if pageName == nav.path -%} 19 | {% assign this_pages_navbar = nav %} 20 | {%- else -%} 21 | {% assign not_this_page = nav %} 22 | {%- endif -%} 23 | {%- endfor -%} 24 | {%- assign navbars = navigations | sort:"order" -%} 25 | 26 | {%- assign title = page.name | replace: "-"," " | replace: "_"," " | split: ".md" | first -%} 27 | {%- assign pageTitle = title | split: ' ' -%} 28 | {%- capture pageTitleUpper -%}{%- for word in pageTitle -%}{{ word | capitalize }} {%- endfor -%}{%- endcapture -%} 29 | 30 | 31 |
    32 | 49 |
    50 | 51 | 65 | 66 |
    67 | {{ content }} 68 |
    69 |
    70 | -------------------------------------------------------------------------------- /_layouts/smartedge-open_pdf.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | pdf: 8 | - cache: false | directory | default:.asset-cache 9 | page_size: A4, Letter, etc. | default:A4 10 | layout: layout | default:pdf 11 | 12 | pdf_layout: smartedge-open_pdf 13 | --- 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | Page {{ page.pdf.page }} of {{ page.pdf.topage }} 23 | 24 | -------------------------------------------------------------------------------- /_plugins/breadcrumbs.rb: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | require_relative 'drops/breadcrumb_item.rb' 5 | 6 | module Jekyll 7 | module Breadcrumbs 8 | @@config = {} 9 | @@siteAddress = "" 10 | @@sideAddresses = {} 11 | 12 | def self.clearAddressCache 13 | @@sideAddresses = {} 14 | end 15 | 16 | def self.loadAddressCache(site) 17 | clearAddressCache 18 | site.documents.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # collection files including posts 19 | site.pages.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # pages 20 | site.posts.docs.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # posts 21 | end 22 | 23 | def self.addAddressItem(url, title) 24 | key = createAddressCacheKey(url) 25 | @@sideAddresses[key] = {:url => url, :title => title} 26 | end 27 | 28 | def self.findAddressItem(path) 29 | key = createAddressCacheKey(path) 30 | @@sideAddresses[key] if key 31 | end 32 | 33 | def self.createAddressCacheKey(path) 34 | path.chomp("/").empty? ? "/" : path.chomp("/") 35 | end 36 | 37 | def self.buildSideBreadcrumbs(side, payload) 38 | return if side.url == @@siteAddress && root_hide 39 | 40 | drop = Jekyll::Drops::BreadcrumbItem 41 | payload["breadcrumbs"] = [] 42 | position = 0 43 | 44 | path = side.url.chomp("/").split(/(?=\/)/) 45 | -1.upto(path.size - 1) do |int| 46 | joined_path = int == -1 ? "" : path[0..int].join 47 | item = findAddressItem(joined_path) 48 | if item 49 | position += 1 50 | item[:position] = position 51 | payload["breadcrumbs"] << drop.new(item) 52 | end 53 | end 54 | end 55 | 56 | # Config 57 | def self.loadConfig(site) 58 | config = site.config["breadcrumbs"] || {"root" => {"hide" => false, "image" => false}} 59 | root = config["root"] 60 | @@config[:root_hide] = root[:hide] || false 61 | @@config[:root_image] = root[:image] || false 62 | end 63 | 64 | def self.root_hide 65 | @@config[:root_hide] 66 | end 67 | 68 | def self.root_image 69 | @@config[:root_image] 70 | end 71 | end 72 | end 73 | 74 | Jekyll::Hooks.register :site, :pre_render do |site, payload| 75 | Jekyll::Breadcrumbs::loadConfig(site) 76 | Jekyll::Breadcrumbs::loadAddressCache(site) 77 | end 78 | 79 | Jekyll::Hooks.register [:pages, :documents], :pre_render do |side, payload| 80 | Jekyll::Breadcrumbs::buildSideBreadcrumbs(side, payload) 81 | end 82 | -------------------------------------------------------------------------------- /_plugins/drops/breadcrumb_item.rb: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright (c) 2020 Intel Corporation 3 | 4 | module Jekyll 5 | module Drops 6 | class BreadcrumbItem < Liquid::Drop 7 | extend Forwardable 8 | 9 | def initialize(side) 10 | @side = side 11 | end 12 | 13 | def position 14 | @side[:position] 15 | end 16 | 17 | def title 18 | @side[:title] 19 | end 20 | 21 | def url 22 | @side[:url] 23 | end 24 | end 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/edit.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/first_access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/first_access.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/userplane5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/userplane5.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/userplane5_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/userplane5_update.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/userplane5_update_thenlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/userplane5_update_thenlist.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/userplane_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/userplane_create.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/userplane_create_thenlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/userplane_create_thenlist.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/userplane_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/userplane_delete.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/userplane_delete_thenlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/userplane_delete_thenlist.png -------------------------------------------------------------------------------- /doc/applications-onboard/cups-howto-images/wireshark_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/cups-howto-images/wireshark_example.png -------------------------------------------------------------------------------- /doc/applications-onboard/dns-images/DNS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/dns-images/DNS.png -------------------------------------------------------------------------------- /doc/applications-onboard/dns-images/dns1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/dns-images/dns1.png -------------------------------------------------------------------------------- /doc/applications-onboard/eaa-images/eaa-comp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/eaa-images/eaa-comp.png -------------------------------------------------------------------------------- /doc/applications-onboard/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/applications-onboard/network-edge-app-onboarding-images/ovc-smartcity-setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/network-edge-app-onboarding-images/ovc-smartcity-setup.png -------------------------------------------------------------------------------- /doc/applications-onboard/smartedge-open-eaa.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | ``` 5 | 6 | # Edge Application Agent (EAA) 7 | - [Edge Application APIs](#edge-application-apis) 8 | - [Edge Application Authentication](#edge-application-authentication) 9 | 10 | #### Edge Application API support 11 | 12 | There are two types of applications that can be deployed on the Edge Node: 13 | - **Producer Application**: The Smart Edge Open Producer application is an edge compute application that provides services to other applications running on the edge compute platform (location services, mapping services, transcoding services, etc.) 14 | - **Consumer Application**: The Smart Edge Open Consumer application is an edge compute application that serves end users traffic directly (CDN App, Augmented Reality App, VR Application, Infotainment Application, etc.). Pre-existing cloud applications that do not intend to call the EAA APIs but would like to serve the users (without any changes to the implementation) on the edge also fall into this category. 15 | 16 | API endpoint for edge applications is implemented in the EAA (Edge Application Agent) microservice and is implemented in Go lang. APIs are classified into: 17 | 18 | | Edge Application API | Description | Example | 19 | |------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------| 20 | | **Edge Service Activation/Deactivation** | This API endpoint enables a Producer App on the Edge Node to register and activate on the Edge Node\. After this API execution, the Producer App will be discoverable to Consumer Apps on the Edge Node\. | The Location Service Producer app will call this API first after being deployed from the controller\. | 21 | | **Edge Service Discovery** | This API Endpoint enables a Consumer application to discover all the active Producer Applications on the Edge Node\. | A CDN App can discover the Location Service Application on the Edge Node\. | 22 | | **Edge Service Subscription/Unsubscription** | This API Endpoint enables a Consumer application to subscribe to Producer application service and notification updates\. | A CDN application can subscribe to the Location Service application and Notification update from the service\. | 23 | | **Edge Service Notification update** | This is a Web socket connection that needs to be created by a Consumer Application which intends to subscribe to services from Producer Applications\. This WebSocket is used for a push\-notification when there is an update from the Producer Application\. | Location update is sent as a Push Notification update to the CDN Application\. | 24 | | **Edge Service data update** | This API endpoint enables a Producer Application to publish the data to the Edge Node when it has an update to its service\. | Location Service Producer App publishes the Location update of a user to the Edge Node\. | 25 | | **Edge Service list subscription** | This API endpoint allows a Consumer Application to get the list of Producer Application services it has been availed of\. | CDN Application can call this API to check if it has subscribed to Location and Transcoding services\. | 26 | 27 | ### Edge Application APIs 28 | Edge Application APIs are implemented by the EAA. Edge Application APIs are important APIs for Edge application developers. EAA APIs are implemented as HTTPS REST. There are two types of use cases: 29 | 1. **Porting an existing Public/Private Cloud application to the edge compute based on Smart Edge Open**: This is a scenario where a customer wants to run existing apps in the public cloud on Smart Edge Open edge without calling any APIs or changing code. In this case, the only requirement is for an Application image (VM/Container) should be uploaded to the controller and provisioned on the Edge Node using Smart Edge Open Controller. In this case, the Application cannot call any EAA APIs and consume services on the edge compute. It just services end-user traffic. 30 | 3. **Native Edge compute Application calling EAA APIs**: This is a scenario where a customer wants to develop Edge compute applications that take advantage of Edge compute services resulting in a more tactile application that responds to the changing user, network, or resource scenarios. 31 | 32 | Smart Edge Open supports the deployment of both types of applications mentioned above. The Edge Application Agent is a service that runs on the Edge Node and operates as a discovery service and basic message bus between applications via `pubsub`. The connectivity and discoverability of applications by one another is governed by an entitlement system and is controlled by policies set with the Smart Edge Open Controller. The entitlement system is still in development but currently allows all applications on the executing Edge Node to discover one another as well as publish and subscribe to all notifications. The Figure below provides the sequence diagram of the supported APIs for the application. 33 | 34 | More details about the APIs can be found here [Edge Application APIs](https://www.openness.org/api-documentation/?api=eaa) 35 | 36 | ![Edge Application APIs](eaa-images/smartedge-open-eaa.png) 37 | 38 | _Figure - Edge Application API Sequence Diagram_ 39 | 40 | ### Edge Application Authentication 41 | 42 | Connection to the EAA can be established after performing mutual TLS authentication. To achieve that the application needs to generate its certificate using Certificate Signer and should trust the CA certificate `root.pem` that is stored in `ca-certrequester` Kubernetes Secret. 43 | 44 | The details can be found on the [Certificate Signer page](smartedge-open-certsigner.md). 45 | -------------------------------------------------------------------------------- /doc/applications-onboard/smartedge-open-edgedns.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Edge DNS 7 | - [Overview](#overview) 8 | - [Usage](#usage) 9 | - [Network edge usage](#network-edge-usage) 10 | 11 | ## Overview 12 | The edge platform must provide access to DNS. The edge platform receives the application DNS rules from the controller. This is specified in the ETSI Multi-access Edge Computing (MEC). From a 5G edge deployment perspective, the Primary DNS (priDns) and Secondary DNS (secDns) needs to be configured which is going to be consumed by the SMF. 13 | 14 | 15 | Smart Edge Open supports DNS microservice to address these DNS requirements and also DNS service for edge applications and network functions. 16 | 17 | ![DNS support on Smart Edge Open overview](dns-images/dns1.png) 18 | 19 | _Figure - DNS support on Smart Edge Open overview_ 20 | 21 | >**NOTE**: Secondary DNS service is out of the scope of Smart Edge Open and is only used for DNS forwarding. 22 | 23 | EdgeDNS is a functionality to provide the Domain Name System (DNS) Server with a possibility to be controlled by its CLI. EdgeDNS Server listens for requests from a client's CLI. After receiving a CLI request, a function handling the request adds or removes the RULE inside of the EdgeDNS database. EdgeDNS supports only type A records for Set/Delete Fully Qualified Domain Names (FQDN) and the current forwarder is set to 8.8.8.8 (set in docker-compose.yml and smartedge-open.yaml). Network Edge mode provides EdgeDNS as a service, which is an application running in a K8s pod on each node of the Smart Edge Open K8s cluster. It allows users to add and remove DNS entries of the node directly from K8s control plane using kubectl plugin. 24 | 25 | ## Usage 26 | 27 | The EdgeDNS server can be controlled by its CLI. The CLI reads a json file containing HostRecordSet for set operation and RecordSet for del operation. The following is an example of JSON files that defines www.example.com to be 1.1.1.1;1.1.1.2;1.1.1.3;1.1.1.4 as `set.json` and `del.json` files: 28 | 29 | set.json 30 | ```json 31 | { 32 | "record_type":"A", 33 | "fqdn":"www.example.com", 34 | "addresses":["1.1.1.1", "1.1.1.2", "1.1.1.3", "1.1.1.4"] 35 | } 36 | ``` 37 | 38 | del.json 39 | ```json 40 | { 41 | "record_type":"A", 42 | "fqdn":"www.example.com" 43 | } 44 | ``` 45 | 46 | ### Network edge usage 47 | 48 | In Network Edge, the EdgeDNS CLI is used as a Kubernetes\* plugin. The following is an output of help of kubectl edgedns. 49 | 50 | ``` 51 | `kubectl edgedns --help` to learn about usage 52 | `kubectl edgedns set ` to set DNS entry of node 53 | `kubectl edgedns del ` to delete DNS entry of node 54 | ``` 55 | 56 | >**NOTE**: `node_hostname` must be a valid node name; it can be found using `kubectl get nodes` 57 | 58 | >**NOTE**: `JSON filename` is a path to the file containing record_type, fqdn, and addresses in case of setting operation. JSON file without record_type also is valid, and as default value "A" is set. 59 | 60 | To set the DNS entry on the node from the `set.json` file, users must provide the following command: 61 | 62 | `kubectl edgedns set node1 set.json` 63 | 64 | The following command removes this entry: 65 | 66 | `kubectl edgedns del node1 del.json` 67 | 68 | -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_pfd_transaction_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_pfd_transaction_home.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_create.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_create_part1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_create_part1.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_create_part2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_create_part2.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_create_part3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_create_part3.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_delete.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_display.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_display_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_display_home.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_edit.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_patch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/af_subscription_patch.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/ngc_af_service_config_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/ngc_af_service_config_log.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/ngc_homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/ngc_homepage.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/ngc_pods_list_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/ngc_pods_list_output.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/ngc_services_list_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/ngc_services_list_output.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_create.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_delete.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_display.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_edit.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/oam_services_home.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_create.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_delete.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_delete_appID.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_delete_appID.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_display.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_edit.png -------------------------------------------------------------------------------- /doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_edit_appID.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications-onboard/using-smartedge-open-cnca-images/pfd_transaction_edit_appID.png -------------------------------------------------------------------------------- /doc/applications/app-guide/smartedge-open_apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/app-guide/smartedge-open_apps.png -------------------------------------------------------------------------------- /doc/applications/app-guide/smartedge-open_cloudadapter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/app-guide/smartedge-open_cloudadapter.png -------------------------------------------------------------------------------- /doc/applications/app-guide/smartedge-open_openvinoexecflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/app-guide/smartedge-open_openvinoexecflow.png -------------------------------------------------------------------------------- /doc/applications/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/applications/ovc-images/data-centric-design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/ovc-images/data-centric-design.png -------------------------------------------------------------------------------- /doc/applications/ovc-images/ovc-pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/ovc-images/ovc-pipeline.png -------------------------------------------------------------------------------- /doc/applications/ovc-images/ovc-vm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/ovc-images/ovc-vm.png -------------------------------------------------------------------------------- /doc/applications/ovc-images/scope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/ovc-images/scope.png -------------------------------------------------------------------------------- /doc/applications/ovc-images/screenshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/ovc-images/screenshot.gif -------------------------------------------------------------------------------- /doc/applications/ovc-images/smart-city-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/ovc-images/smart-city-app.png -------------------------------------------------------------------------------- /doc/applications/ovc-images/smart-city-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/ovc-images/smart-city-architecture.png -------------------------------------------------------------------------------- /doc/applications/service-mesh-images/bookinfo-landing-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/service-mesh-images/bookinfo-landing-page.png -------------------------------------------------------------------------------- /doc/applications/service-mesh-images/grafana-istio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/service-mesh-images/grafana-istio.png -------------------------------------------------------------------------------- /doc/applications/service-mesh-images/grafana-telemetry-rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/service-mesh-images/grafana-telemetry-rule.png -------------------------------------------------------------------------------- /doc/applications/service-mesh-images/kiali-book-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/service-mesh-images/kiali-book-info.png -------------------------------------------------------------------------------- /doc/applications/service-mesh-images/kiali-canary-deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/service-mesh-images/kiali-canary-deployment.png -------------------------------------------------------------------------------- /doc/applications/service-mesh-images/kiali-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/service-mesh-images/kiali-login.png -------------------------------------------------------------------------------- /doc/applications/service-mesh-images/prometheus-istio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/service-mesh-images/prometheus-istio.png -------------------------------------------------------------------------------- /doc/applications/service-mesh-images/video-analytics-service-mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/service-mesh-images/video-analytics-service-mesh.png -------------------------------------------------------------------------------- /doc/applications/va-service-images/va-services-deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/va-service-images/va-services-deployment.png -------------------------------------------------------------------------------- /doc/applications/va-service-images/va-services-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/applications/va-service-images/va-services-flow.png -------------------------------------------------------------------------------- /doc/arch-images/customers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/customers.png -------------------------------------------------------------------------------- /doc/arch-images/locations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/locations.png -------------------------------------------------------------------------------- /doc/arch-images/modular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/modular.png -------------------------------------------------------------------------------- /doc/arch-images/multi-location-edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/multi-location-edge.png -------------------------------------------------------------------------------- /doc/arch-images/resource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/resource.png -------------------------------------------------------------------------------- /doc/arch-images/smartedge-open-arc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/smartedge-open-arc.png -------------------------------------------------------------------------------- /doc/arch-images/smartedge-open-emco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/smartedge-open-emco.png -------------------------------------------------------------------------------- /doc/arch-images/smartedge-open-flexran.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/smartedge-open-flexran.png -------------------------------------------------------------------------------- /doc/arch-images/smartedge-open-ovc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/smartedge-open-ovc.png -------------------------------------------------------------------------------- /doc/arch-images/smartedge-open_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/smartedge-open_overview.png -------------------------------------------------------------------------------- /doc/arch-images/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/arch-images/start.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/iap-images/iap1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/dataplane/iap-images/iap1.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/iap-images/iap2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/dataplane/iap-images/iap2.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/iap-images/iap3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/dataplane/iap-images/iap3.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/nts-images/nts1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/dataplane/nts-images/nts1.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/nts-images/nts2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/dataplane/nts-images/nts2.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/ovn_images/ovncni_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/dataplane/ovn_images/ovncni_cluster.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/ovn_images/smartedge-open_ovn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/dataplane/ovn_images/smartedge-open_ovn.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/ovn_images/smartedge-open_ovnovs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/dataplane/ovn_images/smartedge-open_ovnovs.png -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/smartedge-open-interapp.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # InterApp Communication Support in Smart Edge Open 7 | - [Overview](#overview) 8 | - [InterApp Communication support in Smart Edge Open Network Edge](#interapp-communication-support-in-smart-edge-open-network-edge) 9 | 10 | ## Overview 11 | 12 | Multi-core edge cloud platforms typically host multiple containers or virtual machines as PODs. These applications sometimes need to communicate with each other as part of a service or consuming services from another application instance. This means that an edge cloud platform should provide not just the data plane interface (to enable user data transfer to and from clients) but also the infrastructure to enable applications to communicate with each other whether they are on the same platform or spanning across multiple platforms. Smart Edge Open provides the infrastructure for both in the network edge mode. 13 | 14 | >**NOTE**: The InterApps Communication mentioned here is not just for applications but it is also applicable for Network functions (Core Network User plane, Base station, etc.). 15 | 16 | ## InterApp Communication support in Smart Edge Open Network Edge 17 | 18 | InterApp communication on the Smart Edge Open Network Edge is supported using Open Virtual Network for Open vSwitch [OVN/OVS](https://github.com/smart-edge-open/specs/blob/master/doc/building-blocks/dataplane/smartedge-open-ovn.md) as the infrastructure. OVN/OVS in the network edge is supported through the Kubernetes kube-OVN Container Network Interface (CNI). 19 | 20 | >**NOTE**: The InterApps Communication also works with Calico cni. Calico is supported as a default cni in Openness from 21.03 release. 21 | 22 | OVN/OVS is used as a default networking infrastructure for: 23 | - Data plane interface: User data transmission between User Equipment (UE) and edge applications 24 | - InterApp interface : Communication infrastructure for applications to communicate 25 | - Default interface: Interface for managing the application POD (e.g., SSH to application POD) 26 | - Cloud/Internet interface: Interface for edge applications to communicate with the cloud/Internet 27 | 28 | ![Data Plane Interfaces in Smart Edge Open Network Edge](iap-images/iap2.png) 29 | 30 | _Figure - Smart Edge Open Network Edge Interfaces_ 31 | -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/smartedge-open-ovn.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019-2020 Intel Corporation 4 | ``` 5 | 6 | # Smart Edge Open Support for OVS as dataplane with OVN 7 | - [OVN Introduction](#ovn-introduction) 8 | - [OVN/OVS support in Smart Edge Open Network Edge](#ovnovs-support-in-smart-edge-open-network-edge) 9 | - [Summary](#summary) 10 | 11 | ## OVN Introduction 12 | Open Virtual Network (OVN) is an open-source solution based on the Open vSwitch-based (OVS) software-defined networking (SDN) solution for providing network services to instances. OVN adds to the capabilities of OVS to provide native support for virtual network abstractions, such as virtual L2 and L3 overlays and security groups. Further information about the OVN architecture can be found [here](http://www.openvswitch.org/support/dist-docs-2.5/ovn-architecture.7.html) 13 | 14 | ## OVN/OVS support in Smart Edge Open Network Edge 15 | The primary objective of supporting OVN/OVS in Smart Edge Open is to demonstrate the capability of using a standard dataplane such as OVS for an Edge Compute platform. Using OVN/OVS further provides standard SDN-based flow configuration for the edge Dataplane. 16 | 17 | The diagram below shows OVS as a dataplane and OVN overlay. This mode of deployment is recommended when the Edge node terminates IP traffic (Wireline, Wireless, LTE CUPS, SGi) 18 | 19 | ![Smart Edge Open with NTS as dataplane overview](ovn_images/smartedge-open_ovn.png) 20 | 21 | [Kube-OVN](https://github.com/alauda/kube-ovn) can be chosen as the CNI implementation for OVN/OVS in Smart Edge Open. Additionally, in the following configuration, Smart Edge Open applications on Edge Nodes are deployed as DaemonSet Pods (in separate "openness" namespace) and exposed to client applications by k8s services. 22 | 23 | OVN/OVS is used as the default networking infrastructure for: 24 | - Dataplane Interface: UE's to edge applications 25 | - InterApp Interface: Communication infrastructure for applications to communicate 26 | - Default Interface: Interface for managing the Application POD (e.g., SSH to application POD) 27 | - Cloud/Internet Interface: Interface for Edge applications to communicate with the Cloud/Internet 28 | 29 | The platform supports OVS-DPDK as a dataplane. OVS-DPDK can be used for high-performance data transmission scenarios in the userspace. More about OVS-DPDK can be found [here](http://docs.openvswitch.org/en/latest/howto/dpdk/). 30 | 31 | ## Summary 32 | Smart Edge Open is built with a microservices architecture. Depending on the deployment, there may be a requirement to service pure IP traffic and configure the dataplane using standard SDN-based tools. Smart Edge Open demonstrates such a requirement by providing OVS as a dataplane in the place of NTS without changing the APIs from an end-user perspective. 33 | -------------------------------------------------------------------------------- /doc/building-blocks/dataplane/smartedge-open-userspace-cni.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Userspace CNI 7 | - [Overview](#overview) 8 | - [Setup Userspace CNI](#setup-userspace-cni) 9 | - [HugePages configuration](#hugepages-configuration) 10 | - [Pod deployment](#pod-deployment) 11 | - [Virtual interface usage](#virtual-interface-usage) 12 | 13 | ## Overview 14 | 15 | Userspace CNI is a Container Network Interface (CNI) Kubernetes\* plugin that was designed to simplify the process of deployment of DPDK-based applications in Kubernetes pods. The plugin uses Kubernetes and Multus CNI CRDs to provide pods with a virtual DPDK-enabled Ethernet port. In this document, you can find details about how to install Smart Edge Open with Userspace CNI support and how to use its main features. 16 | 17 | ## Setup Userspace CNI 18 | 19 | Smart Edge Open for Network Edge has been integrated with Userspace CNI to allow users to easily run DPDK- based applications inside Kubernetes pods. To install Smart Edge Open Network Edge with Userspace CNI support, add the value `userspace` to variable `kubernetes_cnis` in `inventory/default/group_vars/all/10-default.yml` and set value of the variable `kubeovn_dpdk` in `inventory/default/group_vars/all/10-default.yml` to `true`: 20 | 21 | ```yaml 22 | # inventory/default/group_vars/all/10-default.yml 23 | kubernetes_cnis: 24 | - kubeovn 25 | - userspace 26 | ``` 27 | 28 | ```yaml 29 | # inventory/default/group_vars/all/10-default.yml 30 | kubeovn_dpdk: true 31 | ``` 32 | 33 | ## HugePages configuration 34 | 35 | DPDK apps require that a specific number of HugePages are enabled. By default, the Ansible\* scripts will enable 1024 of 2M HugePages on a system and then start OVS-DPDK with 1Gb of those HugePages. To change this setting to reflect your specific requirements, set the Ansible variables as defined in the example below. This example enables 4 of 1GB HugePages and appends 1 GB to OVS-DPDK, leaving 3 pages for DPDK applications that will be running in the pods. 36 | 37 | ```yaml 38 | # inventory/default/group_vars/controller_group/10-default.yml 39 | hugepage_size: "1G" 40 | hugepage_amount: "4" 41 | default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }} intel_iommu=on iommu=pt" 42 | ``` 43 | 44 | ```yaml 45 | # inventory/default/group_vars/edgenode_group/10-default.yml 46 | hugepage_size: "1G" 47 | hugepage_amount: "4" 48 | default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }} intel_iommu=on iommu=pt" 49 | ``` 50 | 51 | ```yaml 52 | # inventory/default/group_vars/all/10-default.yml 53 | # Hugepage size to be used with DPDK: 2Mi or 1Gi 54 | kubeovn_dpdk_hugepage_size: "1Gi" 55 | # Overall amount of hugepages available to DPDK 56 | kubeovn_dpdk_hugepages: "1Gi" 57 | ``` 58 | 59 | ## Pod deployment 60 | 61 | To deploy a pod with a DPDK interface, create a pod with `hugepages` mounted to `/dev/hugepages`, host directory `/var/run/openvswitch/` (with mandatory trailing slash character) mounted into the pod with the volume name `shared-dir` (the name `shared-dir` is mandatory), and `userspace-openness` network annotation. Find an example pod definition with two DPDK ports below: 62 | 63 | ```yaml 64 | apiVersion: v1 65 | kind: Pod 66 | metadata: 67 | name: userspace-example 68 | annotations: 69 | k8s.v1.cni.cncf.io/networks: userspace-openness, userspace-openness 70 | spec: 71 | containers: 72 | - name: userspace-example 73 | image: image-name 74 | imagePullPolicy: Never 75 | securityContext: 76 | privileged: true 77 | volumeMounts: 78 | - mountPath: /ovs 79 | name: shared-dir 80 | - mountPath: /dev/hugepages 81 | name: hugepages 82 | resources: 83 | requests: 84 | memory: 1Gi 85 | limits: 86 | hugepages-1Gi: 2Gi 87 | command: ["sleep", "infinity"] 88 | volumes: 89 | - name: shared-dir 90 | hostPath: 91 | path: /var/run/openvswitch/ 92 | - name: hugepages 93 | emptyDir: 94 | medium: HugePages 95 | ``` 96 | 97 | ## Virtual interface usage 98 | 99 | Socket files for virtual interfaces generated by Userspace CNI are created on the host machine in `/var/run/openvswitch` directory. This directory has to be mounted into your pod by volume with **obligatory name `shared-dir`** (in our [example pod definition](#pod-deployment) `/var/run/openvswitch` is mounted to pod as `/ovs`). You can then use the sockets available from your mount-point directory in your DPDK-enabled application deployed inside a pod. Find more examples in [Userspace CNI's documentation](https://github.com/intel/userspace-cni-network-plugin#testing-with-dpdk-testpmd-application). 100 | 101 | >**NOTE**: When 2MB HugePages are enabled for Userspace CNI there is a limitation to [how many memory regions can be used by Virtio](https://doc.dpdk.org/guides/howto/virtio_user_for_container_networking.html#limitations) - in an event where number of memory regions is exceeded by DPDK application, a flag '--single-file-segments' needs to be added to the applications starting command line. 102 | 103 | -------------------------------------------------------------------------------- /doc/building-blocks/emco/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/emco-dig-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/emco-dig-create.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/emco-dig-instantiate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/emco-dig-instantiate.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/emco-geo-distributed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/emco-geo-distributed.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/emco-istio-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/emco-istio-arch.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/emco-istio-auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/emco-istio-auth.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/emco-register-controllers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/emco-register-controllers.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/emco-status-monitoring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/emco-status-monitoring.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-arch.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-lccl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-lccl.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-smtc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-smtc.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-smtcui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-smtcui.png -------------------------------------------------------------------------------- /doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/emco/smartedge-open-emco-images/smartedge-open-emco-topology.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/acc100-images/acc100-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/acc100-images/acc100-diagram.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/acc100-images/acc100-k8s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/acc100-images/acc100-k8s.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/biosfw-images/smartedge-open_biosfw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/biosfw-images/smartedge-open_biosfw.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/cmk-images/cmk1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/cmk-images/cmk1.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/cmk-images/cmk2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/cmk-images/cmk2.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/fpga-images/smartedge-open-fpga1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/fpga-images/smartedge-open-fpga1.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/fpga-images/smartedge-open-fpga2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/fpga-images/smartedge-open-fpga2.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/fpga-images/smartedge-open-fpga3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/fpga-images/smartedge-open-fpga3.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/fpga-images/smartedge-open-fpga4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/fpga-images/smartedge-open-fpga4.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/hddl-images/hddlservice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/hddl-images/hddlservice.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/hddl-images/smartedge-open_HDDL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/hddl-images/smartedge-open_HDDL.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/hddl-images/smartedge-open_dynamic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/hddl-images/smartedge-open_dynamic.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/multussriov-images/sriov-cni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/multussriov-images/sriov-cni.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/multussriov-images/sriov-dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/multussriov-images/sriov-dp.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/nfd-images/nfd0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/nfd-images/nfd0.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/nfd-images/nfd1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/nfd-images/nfd1.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/nfd-images/nfd2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/nfd-images/nfd2.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/smartedge-open-bios.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # BIOS and Firmware Configuration on the Smart Edge Open Platform 7 | - [Overview](#overview) 8 | - [Use case for edge](#use-case-for-edge) 9 | - [Details: BIOS and firmware configuration on Smart Edge Open Network Edge](#details-bios-and-firmware-configuration-on-smart-edge-open-network-edge) 10 | - [Setup](#setup) 11 | - [Usage](#usage) 12 | - [Reference](#reference) 13 | 14 | ## Overview 15 | 16 | BIOS and firmware are the fundamental platform configurations of a typical commercial, off-the-shelf platform. BIOS and firmware configurations are low-level configurations that can determine the environment available for network functions or applications. A typical BIOS configuration relevant for a network function or application may include several configurations (CPU, cache and memory, PCIe, power and performance, etc.). Some network functions and applications need certain BIOS and firmware settings to be configured in a specific way for optimal functionality and behavior. 17 | 18 | ## Use case for edge 19 | 20 | Example: an AI Inference application that uses an accelerator such as an FPGA. 21 | To get optimal performance, when this application is deployed by the Resource Orchestrator, it is recommended to place the application on the same node and CPU Socket to which the accelerator is attached. To ensure this, NUMA, PCIe memory-mapped IO, and cache configurations need to be optimally configured. Similarly, for a network function like a base station or core network instruction set, cache and hyperthreading play an important role in the performance and density. 22 | 23 | Smart Edge Open provides a reference implementation demonstrating how to configure low-level platform settings such as BIOS and firmware, and it provides the capability to check if they are configured as per a required profile. To implement this feature, Smart Edge Open uses the Intel® System Configuration Utility. The Intel® System Configuration Utility (Syscfg) is a command-line utility that can be used to save and restore BIOS and firmware settings to a file or to set and display individual settings. 24 | 25 | >**NOTE**: The Intel® System Configuration Utility is only supported on certain server platforms from Intel. Refer to the [Intel® System Configuration Utility user guide](https://www.intel.com/content/dam/support/us/en/documents/server-products/server-boards/intel-syscfg-userguide-v1-03.pdf) for the supported server products. 26 | 27 | >**NOTE**: The Intel® System Configuration Utility is not intended for and should not be used on any non-Intel server products. 28 | 29 | The Smart Edge Open Network Edge implementation goes a step further and provides an automated process using Kubernetes\* to save and restore BIOS and firmware settings. To do this, the Intel® System Configuration Utility is packaged as a pod and deployed as a Kubernetes job that uses ConfigMap. This ConfigMap provides a mount point that has the BIOS and firmware profile that needs to be used for the node. A platform reboot is required for the BIOS and firmware configuration to be applied. To enable this, the BIOS and firmware job is deployed as a privileged pod. 30 | 31 | ![BIOS and Firmware configuration on Smart Edge Open](biosfw-images/smartedge-open_biosfw.png) 32 | 33 | _Figure - BIOS and Firmware configuration on Smart Edge Open_ 34 | 35 | ## Details: BIOS and firmware configuration on Smart Edge Open Network Edge 36 | 37 | BIOS and firmware configuration features are wrapped in a kubectl plugin. 38 | Knowledge of Intel SYSCFG utility is required for usage. 39 | Intel SYSCFG must be manually downloaded by the user after accepting the license. 40 | [Download the utility here](https://downloadcenter.intel.com/download/29693/Save-and-Restore-System-Configuration-Utility-SYSCFG). 41 | 42 | ### Setup 43 | To enable BIOSFW, perform the following steps: 44 | 1. The SYSCFG package must be downloaded and stored inside Converged Edge Experience Kits' `biosfw/` directory as a `syscfg_package.zip`: 45 | `converged-edge-experience-kits/biosfw/syscfg_package.zip` 46 | 2. Change the variable `ne_biosfw_enable` in `inventory/default/group_vars/all/10-default.yml` to “true”: 47 | ```yaml 48 | ne_biosfw_enable: true 49 | ``` 50 | 3. Converged Edge Experience Kits' NetworkEdge deployment for both controller and nodes can be started. 51 | 52 | ### Usage 53 | 54 | >**NOTE**: BIOSFW does not verify if the motherboard is compliant with the syscfg tool. It is assumed that syscfg verifies the motherboard and requirements. 55 | 56 | * Use `kubectl biosfw --help` to learn about usage. 57 | * Use `kubectl biosfw save saved_bios.ini` to get BIOS setting of the `` node to `saved_bios.ini`. 58 | * Use `kubectl biosfw restore bios_to_restore.ini` to restore BIOS settings on `` node from file `bios_to_restore.ini`. 59 | * Use `kubectl biosfw restore bios_to_restore.ini admin_password` to restore BIOS settings on `` node using BIOS Admin Password (last argument). 60 | * Use `kubectl biosfw direct /i` to run `syscfg /i` on `` node. 61 | * Use `kubectl biosfw direct /d BIOSSETTINGS "Quiet Boot"` to run `syscfg /d BIOSSETTINGS "Quiet Boot"` on `` node. 62 | 63 | ## Reference 64 | - [Intel Save and Restore System Configuration Utility (SYSCFG)](https://downloadcenter.intel.com/download/28713/Save-and-Restore-System-Configuration-Utility-SYSCFG-) 65 | -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/smartedge-open-hugepage.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019-2020 Intel Corporation 4 | ``` 5 | 6 | # HugePage support in Smart Edge Open 7 | - [Overview](#overview) 8 | - [Details of HugePage support on Smart Edge Open](#details-of-hugepage-support-on-smart-edge-open) 9 | - [Examples](#examples) 10 | - [Changing size and amount of the hugepages for both controller and nodes](#changing-size-and-amount-of-the-hugepages-for-both-controller-and-nodes) 11 | - [Customizing hugepages for specific machine](#customizing-hugepages-for-specific-machine) 12 | - [Reference](#reference) 13 | 14 | ## Overview 15 | 16 | Memory is allocated to application processes in terms of pages and by default, 4K pages are supported. For applications dealing with larger datasets, using 4K pages may lead to performance degradation and overhead because of translation lookaside buffer (TLB) misses. To address this, modern CPUs support HugePages which are typically 2M and 1G. This helps avoid TLB miss overhead and therefore improves performance. 17 | 18 | Both applications and network functions can improve performance using HugePages. Huge page support, added to Kubernetes\* v1.8, enables the discovery, scheduling, and allocation of huge pages as a native, first-class resource. This support addresses low latency and deterministic memory access requirements. 19 | 20 | ## Details of HugePage support on Smart Edge Open 21 | 22 | Deployment of Smart Edge Open' minimal flavor does not enable the hugepages. 23 | To enable hugepages either use flavor that supports hugepages (e.g. flexran) or enable hugepages by editing `default_grub_params` variable in `group_vars` and/or `host_vars`. Suggested value for hugepage enablement is `default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }}`. 24 | 25 | Next, following parameters can be used for tuning hugepages: 26 | * `hugepage_size` - size, which can be either `2M` or `1G` 27 | * `hugepage_amount` - amount 28 | 29 | Previously default values were: 30 | | Machine type | `hugepage_amount` | `hugepage_size` | 31 | |--------------|-------------------|-----------------| 32 | | Controller | `1024` | `2M` | 33 | | Node | `1024` | `2M` | 34 | 35 | Find below a guide on changing these values. Customizations must be made before Smart Edge Open deployment. 36 | 37 | Variables for hugepage customization can be placed in several files: 38 | * `inventory/default/group_vars/controller_group/10-default.yml` and `inventory/default/group_vars/edgenode_group/10-default.yml` will affect Edge Controller and Edge Nodes 39 | * `inventory/default/host_vars//10-default.yml` will only affect the `` host present in `inventory.yml` 40 | * Hugepages can be also specified inside playbook, however due to Ansible's\* variable priority this is not recommended (it will override both `group_vars` and `host_vars`). For example: 41 | ```yaml 42 | # network_edge.yml 43 | 44 | - hosts: edgenode_group 45 | vars: 46 | hugepage_amount: "5000" 47 | ``` 48 | The usage is summarized in the following table: 49 | 50 | | File | Edge Controller | Edge Node | Comment | 51 | |--------------------------------------------------------------------|----------------------------------------|---------------------------------------------------|---------------------------------------------------------------------------------| 52 | | `inventory/default/group_vars/controller_group/10-default.yml` | yes | | | 53 | | `inventory/default/group_vars/edgenode_group/10-default.yml` | | yes - every node | | 54 | | `inventory/default/host_vars//10-default.yml` | yes | yes | affects machine specified in `inventory.yml` with name `` | 55 | | `network_edge.yml` | `vars` under `hosts: controller_group` | `vars` under `hosts: edgenode_group` - every node | not recommended | 56 | 57 | Note that variables have precedence: 58 | 1. **not recommended:** `network_edge.yml` will always take precedence for files from this list (overrides every other var) 59 | 2. `inventory/default/host_vars/` 60 | 3. `inventory/default/group_vars/edgenode_group/10-default.yml` and `inventory/default/group_vars/controller_group/10-default.yml` 61 | 4. `inventory/default/group_vars/all/10-default.yml` 62 | 5. `default/main.yml` in roles' directory 63 | 64 | 65 | ### Examples 66 | 67 | #### Changing size and amount of the hugepages for both controller and nodes 68 | Change the following lines in the `inventory/default/group_vars/edgenode_group/10-default.yml` or `inventory/default/group_vars/controller_group/10-default.yml`: 69 | * To set 1500 of the hugepages with the page size of 2 MB (which is the default value) for the Edge Controller: 70 | ```yaml 71 | # inventory/default/group_vars/controller_group/10-default.yml 72 | 73 | hugepage_size: "2M" 74 | hugepage_amount: "1500" 75 | default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }}" 76 | ``` 77 | 78 | * To set 10 of the hugepages with the page size of 1GB for the Edge Nodes: 79 | ```yaml 80 | # inventory/default/group_vars/edgenode_group/10-default.yml 81 | 82 | hugepage_size: "1G" 83 | hugepage_amount: "10" 84 | default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }}" 85 | ``` 86 | 87 | #### Customizing hugepages for specific machine 88 | To specify the size or amount only for a specific machine, `hugepage_size` and/or `hugepage_amount` can be provided in `inventory/default/host_vars//10-default.yml` (i.e., if host is named `node01`, then the file is `inventory/default/host_vars/node01/10-default.yml`). For example: 89 | ```yaml 90 | # inventory/default/host_vars/node01/10-default.yml 91 | 92 | hugepage_size: "2M" 93 | hugepage_amount: "1500" 94 | default_grub_params: "default_hugepagesz={{ hugepage_size }} hugepagesz={{ hugepage_size }} hugepages={{ hugepage_amount }}" 95 | ``` 96 | 97 | ## Reference 98 | - [Hugepages support in Kubernetes](https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/) 99 | -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/smartedge-open_hddl.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Using Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution in Smart Edge Open 7 | - [Overview](#overview) 8 | - [HDDL Introduction](#hddl-introduction) 9 | - [HDDL Smart Edge Open Integration](#hddl-smart-edge-open-integration) 10 | - [Summary](#summary) 11 | - [Reference](#reference) 12 | 13 | ## Overview 14 | The deployment of AI-based, machine-learning (ML) applications on the edge have become more prevalent. Supporting hardware resources that accelerate AI/ML applications on the edge is key to improve the capacity of edge cloud deployment. It is also important to use the CPU instruction set to execute AI/ML tasks when a workload is less. This document explains these topics in the context of inference as an edge workload. 15 | 16 | ## HDDL Introduction 17 | Intel® Movidius™ Myriad™ X High Density Deep Learning (HDDL) solution integrates multiple Intel® Movidius™ Myriad™ X brand SoCs in a PCIe add-in card form factor or a module form factor to build a scalable, high-capacity, deep-learning solution. It provides hardware and software reference for customers. The following figure shows the HDDL-R concept. 18 | 19 | ![HDDL-R Add-in Card](hddl-images/smartedge-open_HDDL.png) 20 | 21 | - HDDL-R: Raw video data to the PCIe card (decode on the host). 22 | - Scalability: Options available to put between 4 to 8 Intel® Movidius™ Myriad™ X brand SoC chips in one add-in-card. 23 | - Easy to adopt (plug and use): Powered by the PCIe\* x4 interface with a 25W ceiling from existing NVR and server designs. 24 | 25 | The HDDL SW stack adopts OpenVINO™ brand IE APIs. These universal deep-learning inference APIs have different implementations for the Intel’s CPU, GPU, FPGA, and VPU (Intel® Movidius™ Myriad™ series) technology. 26 | Each implementation for each hardware is an inference engine plugin. 27 | The plugin for the Intel® Movidius™ Myriad™ X HDDL solution, or IE HDDL plugin for short, supports the Intel® Movidius™ Myriad™ X HDDL Solution hardware PCIe card. It communicates with the Intel® Movidius™ Myriad™ X HDDL HAL API to manage multiple Intel® Movidius™ Myriad™ X devices in the card, and it schedules deep-learning neural networks and inference tasks to these devices. 28 | 29 | ## HDDL Smart Edge Open Integration 30 | Smart Edge Open provides support for the deployment of OpenVINO™ applications and workloads accelerated through Intel® Vision Accelerator Design with the Intel® Movidius™ VPU HDDL-R add-in card. As a prerequisite for enabling the support, it is required for the HDDL add-in card to be inserted into the PCI slot of the Edge Node platform. The support is then enabled by setting the appropriate flag - 'ne_hddl_enable' in the 'inventory/default/group_vars/all/10-default.yml' before running CEEK playbooks. 31 | > **NOTE** No pre-defined flavor is provided for HDDL. If user wants to enable HDDL with flavor, can set flag - 'ne_hddl_enable' in the 'flavors//all.yml'. The node with HDDL card inserted will be labelled as 'hddl-zone=true'. 32 | 33 | The CEEK automation script for HDDL will involve the following steps: 34 | - Download the HDDL DaemonSet yaml file from [Open Visual Cloud dockerfiles software](https://github.com/OpenVisualCloud/Dockerfiles) and templates it with specific configuration to satifiy Smart Edge Open need such as OpenVINO version...etc. 35 | - Download the OpenVINO™, install kernel-devel and then install HDDL dependencies. 36 | - Build the HDDLDdaemon image. 37 | - Label the node with 'hddl-zone=true'. 38 | - HDDL Daemon automatically brings up on the node with label 'hddl-zone=true'. 39 | 40 | The HDDL Daemon provides the backend service to manage VPUs and dispatch inference tasks to VPUs. OpenVINO™-based applications that utilizes HDDL hardware need to access the device node '/dev/ion' and domain socket under '/var/tmp' to communicate with the kernel and HDDL service. 41 | > **NOTE** With the default kernel used by Smart Edge Open CEEK, the ion driver will not enabled by OpenVINO™ toolkits, and the shared memory - '/dev/shm' will be used as fallback. More details refer to [installing_openvino_docker_linux](https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_installing_openvino_docker_linux.html) 42 | 43 | 44 | ![HDDL-Block-Diagram](hddl-images/hddlservice.png) 45 | 46 | 47 | ## Summary 48 | The Intel® Movidius™ Myriad™ X HDDL solution integrates multiple Intel® Movidius™ Myriad™ X brand SoCs in a PCIe add-in card form factor or a module form factor to build a scalable, high-capacity, deep-learning solution. Smart Edge Open provides a toolkit for customers to put together deep-learning solutions at the edge. To take it further for efficient resource usage, Smart Edge Open provides a mechanism to use CPU or VPU depending on the load or any other criteria. 49 | 50 | ## Reference 51 | - [HDDL-R: Mouser Mustang-V100](https://www.mouser.ie/datasheet/2/763/Mustang-V100_brochure-1526472.pdf) 52 | -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/cadvisor_metric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/cadvisor_metric.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/collectd_metric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/collectd_metric.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-add-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-add-panel.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-dash-setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-dash-setting.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-new-dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-new-dash.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-panel-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-panel-settings.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-panel.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-pcm-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-pcm-dashboard.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-save-dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-save-dash.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-save.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana-settings.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/grafana_login.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/node_exporter_metric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/node_exporter_metric.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/pcm-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/pcm-metrics.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/pcm-stats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/pcm-stats.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/prometheus_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/prometheus_graph.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/prometheus_metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/prometheus_metrics.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/telemetry-images/prometheus_targets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/telemetry-images/prometheus_targets.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/tm-images/tm1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/tm-images/tm1.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/tm-images/tm2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/tm-images/tm2.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/vcaca-images/smart-city-app-vcac-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/vcaca-images/smart-city-app-vcac-a.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/vcaca-images/using-vcac-a-telemetry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/vcaca-images/using-vcac-a-telemetry.png -------------------------------------------------------------------------------- /doc/building-blocks/enhanced-platform-awareness/vcaca-images/vcac-a-vpu-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/building-blocks/enhanced-platform-awareness/vcaca-images/vcac-a-vpu-metrics.png -------------------------------------------------------------------------------- /doc/building-blocks/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/cloud-adapters/awsgg-images/smartedge-open_cloudadapter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/cloud-adapters/awsgg-images/smartedge-open_cloudadapter.png -------------------------------------------------------------------------------- /doc/cloud-adapters/awsgg-images/smartedge-open_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/cloud-adapters/awsgg-images/smartedge-open_overview.png -------------------------------------------------------------------------------- /doc/cloud-adapters/baidu-cloudadapter-images/smartedge-open_baiduedge_end2end_demosetup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/cloud-adapters/baidu-cloudadapter-images/smartedge-open_baiduedge_end2end_demosetup.png -------------------------------------------------------------------------------- /doc/cloud-adapters/baidu-cloudadapter-images/smartedge-open_baiduedge_integration_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/cloud-adapters/baidu-cloudadapter-images/smartedge-open_baiduedge_integration_arch.png -------------------------------------------------------------------------------- /doc/cloud-adapters/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/cloud-adapters/smartedge-open_awsgreengrass.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Smart Edge Open Integration with AWS Greengrass 7 | - [Overview](#overview) 8 | - [Run Greengrass on Smart Edge Open](#run-greengrass-on-smart-edge-open) 9 | - [Running AWS IoT Greengrass in a Docker Container](#running-aws-iot-greengrass-in-a-docker-container) 10 | - [Download Dockerfile from AWS](#download-dockerfile-from-aws) 11 | - [AWS IoT Greengrass](#aws-iot-greengrass) 12 | - [Modify Dockerfile and docker-compose file](#modify-dockerfile-and-docker-compose-file) 13 | - [Build a docker container image with credentials](#build-a-docker-container-image-with-credentials) 14 | - [Greengrass Deployment on AWS IoT](#greengrass-deployment-on-aws-iot) 15 | 16 | ## Overview 17 | This application note will provide guidelines and examples on: 18 | - Creating an AWS Greengrass\* Docker\* container 19 | - Deploying an AWS Greengrass on the Smart Edge Open platform. 20 | 21 | Smart Edge Open is an open-source software platform that enables easy orchestration of edge services across diverse network platforms and access technologies in multi-cloud environments. It is inspired by the edge computing architecture defined by the ETSI Multi-access Edge Computing (MEC) standards (e.g., [ETSI_MEC 003]), as well as the 5G network architecture ([3GPP_23501]). Figure 1 depicts the high-level architecture of Smart Edge Open. 22 | 23 | Certain commercial cloud service providers (CSPs), such as Amazon\*, have the capability of running cloud applications on edge platforms external to their cloud. In the case of AWS, this capability is provided by the Greengrass product. In Greengrass, a cloud connector component called Greengrass Core is ported to the edge platform and interoperates with the AWS cloud to allow the cloud to deploy and provision cloud applications on the edge platform. 24 | 25 | The Smart Edge Open platform supports Amazon Greengrass. This application note describes how to deploy Greengrass on the Smart Edge Open platform. 26 | 27 | ![Smart Edge Open Architecture overview](awsgg-images/smartedge-open_overview.png) 28 | 29 | Figure 1 - Smart Edge Open Architecture 30 | ## Run Greengrass on Smart Edge Open 31 | 32 | Figure 2 shows a system consisting of AWS, AWS Greengrass, and an Smart Edge Open platform. In this architecture, the Greengrass Core runs as an edge application on the Smart Edge Open Edge Node. It is deployed as a Docker Container, and provides a network interface to the AWS Cloud. Greengrass Core uses edge node services to provision cloud applications, which run on the edge node as edge applications. 33 | 34 | For AWS Cloud, Greengrass Core and the applications appear to be components meeting the Greengrass specification and running on an external system. Greengrass Core can run Lambdas within Greengrass core as normal. Greengrass Core and the lambdas have ports from external devices to which traffic is steered by the Smart Edge Open data plane. 35 | 36 | For Smart Edge Open, Greengrass Core is an edge service managed by the edge platform. 37 | 38 | ![Smart Edge Open AWS Greengrass integration](awsgg-images/smartedge-open_cloudadapter.png) 39 | 40 | Figure 2 - Amazon AWS Greengrass Smart Edge Open integrated solution 41 | 42 | This section describes how to set up and run AWS Greengrass on Smart Edge Open in a Docker container. 43 | ### Running AWS IoT Greengrass in a Docker Container 44 | 45 | Smart Edge Open was tested with Docker v1.9.2 of the AWS IoT Greengrass Core software version. 46 | 47 | #### Download Dockerfile from AWS 48 | 49 | AWS provides a Dockerfile and Docker image to enable running AWS IoT Greengrass in a Docker container. 50 | The procedures for downloading and using it are in the [AWS IoT Greengrass Developer Guide](https://docs.aws.amazon.com/greengrass/latest/developerguide). 51 | 52 | In the Downloads section of [What is AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/what-is-gg.html#gg-docker-download), find and download the Docker package. 53 | 54 | #### AWS IoT Greengrass 55 | 56 | Go to the "Configure AWS IoT Greengrass on AWS IoT" section of [AWS IoT Greengrass Developer Guide](https://docs.aws.amazon.com/greengrass/latest/developerguide/gg-config.html) and follow it until you download and store your Core's security resources as a tar.gz. 57 | 58 | Unzip its content into the same directory where the Dockerfile is. 59 | 60 | #### Modify Dockerfile and docker-compose file 61 | 62 | Modify the `Dockerfile` and `docker-compose.yml` file before taking the next steps. 63 | 64 | Add the following section in the Dockerfile: 65 | 66 | ```docker 67 | 68 | # Copy certs files 69 | COPY "./certs/*" /greengrass/certs/ 70 | COPY "./config/*" /greengrass/config/ 71 | RUN chmod 444 /greengrass/config/config.json 72 | 73 | ``` 74 | 75 | In the `docker-compose.yml` file comment out `volumes` section with `#` sign: 76 | 77 | ```docker 78 | # volumes: 79 | # - ./certs:/greengrass/certs 80 | # - ./config:/greengrass/config 81 | # - ./deployment:/greengrass/ggc/deployment 82 | # - ./log:/greengrass/ggc/var/log 83 | 84 | ``` 85 | 86 | #### Build a docker container image with credentials 87 | 88 | Go to the folder with the Dockerfile and run the following command: 89 | 90 | ``` 91 | docker-compose up --build -d 92 | ``` 93 | 94 | Commit the changes to the image: 95 | 96 | ``` 97 | docker commit aws-iot-greengrass aws-iot-greengrass 98 | ``` 99 | 100 | Then save the modified container image into the file: 101 | 102 | ``` 103 | docker save aws-iot-greengrass > aws-iot-greengrass.tar.gz 104 | ``` 105 | 106 | Now deploy the `aws-iot-greengrass.tar.gz` file in Smart Edge Open according to the Controller User Guide. 107 | 108 | ### Greengrass Deployment on AWS IoT 109 | 110 | After the Greengrass container is run by the Smart Edge Open Controller, follow the Greengrass setup and deployment steps in the [AWS IoT Greengrass Developer Guide](https://docs.aws.amazon.com/greengrass/latest/developerguide). 111 | -------------------------------------------------------------------------------- /doc/devkits/smartedge-open-azure-devkit.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | ``` 5 | 6 | # Smart Edge Open Devkit for Azure 7 | 8 | ## Introduction 9 | 10 | This devkit supports the use of Smart Edge Open in cloud solutions. It leverages the Azure Stack for Smart Edge Open deployment. 11 | The devkit offers a quick and easy way to deploy Smart Edge Open on cloud for developers and businesses. It contains templates 12 | for automated depoyment, and supports deployment using Porter. It enables cloud solutions supported by Intel's processors. 13 | 14 | ## Getting Started 15 | 16 | Following document contains steps for quick deployment on Azure: 17 | * [converged-edge-experience-kits/cloud/README.md: Deployment and setup guide](https://github.com/smart-edge-open/converged-edge-experience-kits/blob/master/cloud/README.md) 18 | -------------------------------------------------------------------------------- /doc/getting-started/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/getting-started/kubernetes-dashboard.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Kubernetes Dashboard in Smart Edge Open 7 | - [Overview](#overview) 8 | - [Details - Kubernetes Dashboard support in Smart Edge Open](#details---kubernetes-dashboard-support-in-smart-edge-open) 9 | - [TLS encryption](#tls-encryption) 10 | - [Usage](#usage) 11 | - [Access rights](#access-rights) 12 | - [Reference](#reference) 13 | 14 | ## Overview 15 | 16 | Kubernetes Dashboard is a web user interface for Kubernetes. User can use Dashboard to check the state of deployed pods, get information about all kinds of deployments that are being run on cluster and be provided with lots of useful insights about cluster and running applications. In Smart Edge Open environment Kubernetes Dashboard will be deployed with read-only access to all information except Kubernetes' Secrets. User can modify this role to disable or enable accesses as explained in [Access rights](#access-rights) chapter of this document. 17 | 18 | ## Details - Kubernetes Dashboard support in Smart Edge Open 19 | 20 | Kubernetes Dashboard is disabled by default in Converged Edge Experience Kits. It can be enabled by setting variable `kubernetes_dashboard_enable` in `inventory/default/group_vars/all/10-default.yml` file to `true` value: 21 | 22 | ```yaml 23 | # Kubernetes Dashboard 24 | kubernetes_dashboard_enable: false # set to true to enable Kubernetes Dashboard 25 | ``` 26 | 27 | ### TLS encryption 28 | 29 | TLS for Kubernetes dashboard is enabled by default. User can disable TLS encryption using variable `disable_dashboard_tls` in `inventory/default/group_vars/all/10-default.yml`: 30 | 31 | ```yaml 32 | disable_dashboard_tls: false # set to true to disable TLS 33 | ``` 34 | 35 | ### Usage 36 | 37 | User can use Kubernetes Dashboard by browsing `https://:30553` if TLS is enabled or `http://:30553` if TLS is disabled. 38 | 39 | With TLS enabled Kubernetes Dashboard will prompt for `Kubernetes Service Account token` to log in user. You can get the token by executing the following command on your controller: 40 | 41 | ```bash 42 | kubectl describe secret -n kube-system $(kubectl get secret -n kube-system | grep 'kubernetes-dashboard-token' | awk '{print $1}') | grep 'token:' | awk '{print $2}' 43 | ``` 44 | 45 | > NOTE: To use Kubernetes Dashboard with TLS encryption user will have to add `https://:30553` to web browser's list of security exceptions. 46 | 47 | ### Access rights 48 | 49 | By default Smart Edge Open will deploy Kubernetes Dashboard with read-only access to every information except Kubernetes' secrets. To change access rights (for example hide information about persistent volumes claims, etc.) please modify cluster role defined in `roles/kubernetes/dashboard/files/clusterrole.yml` of Converged Edge Experience Kits. 50 | 51 | ## Reference 52 | - [Kubernetes Dashboard](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/) 53 | -------------------------------------------------------------------------------- /doc/getting-started/non-root-user.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2021 Intel Corporation 4 | ``` 5 | 6 | # The non-root user on the Smart Edge Open Platform 7 | - [Overview](#overview) 8 | - [Steps on K8s nodes](#steps-on-k8s-nodes) 9 | - [Repository modification](#repository-modification) 10 | - [Running edge apps](#running-edge-apps) 11 | 12 | ## Overview 13 | 14 | Smart Edge Open provides a possibility to install all required files on a Kubernetes control plane and nodes with or without root user. From security perspective it is advised to use non-root user installation of the Smart Edge Open platform where all tasks are executed with non-root user’s permissions. Tasks that require root privileges use privilege escalation property "become". 15 | 16 | ```yml 17 | - name: Run a command as root 18 | command: whoami 19 | become: yes 20 | ``` 21 | 22 | >**NOTE**: For more about privileges escalation in Ansible please refer to https://docs.ansible.com/ansible/latest/user_guide/become.html# 23 | 24 | ## Steps on K8s nodes 25 | 26 | Before Ansible installation is started a non-root user needs to be created on the machines defined in `inventory.yml` . To create a user `openness` execute the command: 27 | 28 | ```bash 29 | adduser "openness" 30 | ``` 31 | 32 | A password for the given user is required. 33 | 34 | ```bash 35 | passwd "openness" 36 | ``` 37 | 38 | As some tasks require root privileges the non-root user needs to have a possibility to become a root. For the user `smartedge-open` the following command must be performed: 39 | 40 | ```bash 41 | echo "openness ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/openness 42 | ``` 43 | 44 | ## Repository modification 45 | 46 | To run Ansible as a non-root user a modification in `inventory.yml` is required. Setting a user in variable `ansible_user` to already created non-root user will cause an execution of all tasks as non-root user specified. 47 | 48 | ```yaml 49 | --- 50 | all: 51 | vars: 52 | cluster_name: minimal_cluster 53 | flavor: minimal 54 | single_node_deployment: false 55 | limit: 56 | controller_group: 57 | hosts: 58 | ctrl.openness.org: 59 | ansible_host: 172.16.0.1 60 | ansible_user: openness 61 | edgenode_group: 62 | hosts: 63 | node01.openness.org: 64 | ansible_host: 172.16.0.2 65 | ansible_user: openness 66 | ``` 67 | 68 | ## Running edge apps 69 | 70 | When deployment is done using non root user, the edge apps should also be managed using the same non root user. To run edge apps some command (e.g. docker image push) require sudo privilages, those commands should be executed with sudo privilage. 71 | -------------------------------------------------------------------------------- /doc/getting-started/smartedge-open-cluster-setup-images/harbor_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/getting-started/smartedge-open-cluster-setup-images/harbor_ui.png -------------------------------------------------------------------------------- /doc/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/orchestration/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/orchestration/smartedge-open-helm-images/smartedge-open-helm-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/orchestration/smartedge-open-helm-images/smartedge-open-helm-arch.png -------------------------------------------------------------------------------- /doc/orchestration/smartedge-open-helm.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | ``` 5 | 6 | # Helm support in Smart Edge Open 7 | 8 | - [Introduction](#introduction) 9 | - [Architecture](#architecture) 10 | - [Helm Installation](#helm-installation) 11 | - [Helm Charts](#helm-charts) 12 | - [References](#references) 13 | 14 | ## Introduction 15 | Helm is a package manager for Kubernetes\*. It allows developers and operators to easily package, configure, and deploy applications and services onto Kubernetes clusters. For details refer to the [Helm Website](https://helm.sh). With Smart Edge Open, Helm is used to extend the [Converged Edge Experience Kits](https://github.com/smart-edge-open/converged-edge-experience-kits) Ansible\* playbooks to deploy Kubernetes packages. Helm adds considerable flexibility. It enables users to upgrade an existing installation without requiring a re-install. It provides the option to selectively deploy individual microservices if a full installation of Smart Edge Open is not needed. And it provides a standard process to deploy different applications or network functions. This document aims to familiarize the user with Helm and provide instructions on how to use the specific Helm charts available for Smart Edge Open. 16 | 17 | ## Architecture 18 | The below figure shows the architecture for the Smart Edge Open Helm in this document. 19 | ![Smart Edge Open Helm](smartedge-open-helm-images/smartedge-open-helm-arch.png) 20 | 21 | _Figure - Helm Architecture in Smart Edge Open_ 22 | 23 | 24 | ## Helm Installation 25 | Helm 3 is used for Smart Edge Open. The installation is automatically conducted by the [Converged Edge Experience Kits](https://github.com/smart-edge-open/converged-edge-experience-kits) Ansible playbooks as below: 26 | ```yaml 27 | - role: kubernetes/helm 28 | ``` 29 | To check whether helm is installed successfully, run the following command on the Smart Edge Open controller: 30 | ```bash 31 | $ helm version 32 | version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"} 33 | ``` 34 | ## Helm Charts 35 | Smart Edge Open provides the following helm charts: 36 | - EPA, Telemetry, and k8s plugins: 37 | - CMK, NFD, FPGA Config, SRIOV, VPU, and GPU Device Plugins 38 | - Prometheus\*, NodeExporter, Cadvisor, Collectd, Opentelemetry, PCM, and Grafana\* 39 | - CNI plugins including Multus\* and SRIOV CNI 40 | - Video analytics service 41 | - 5G control plane pods including AF, NEF, OAM, and CNTF 42 | > **NOTE**: NFD, CMK, Prometheus, NodeExporter, and Grafana leverage existing third-party helm charts: [Container Experience Kits](https://github.com/intel/container-experience-kits) and [Helm GitHub\* Repo](https://github.com/helm/charts). For other helm charts, [Converged Edge Experience Kits](https://github.com/smart-edge-open/converged-edge-experience-kits) Ansible playbooks perform automatic charts generation and deployment. 43 | 44 | - Sample applications, network functions, and services that can be deployed and verified on the Smart Edge Open platform: 45 | - Applications 46 | - [CDN Caching Application Helm Charts](https://github.com/smart-edge-open/edgeapps/tree/master/applications/cdn-caching) 47 | - [CDN Transcode Application Helm Charts](https://github.com/OpenVisualCloud/CDN-Transcode-Sample/tree/master/deployment/kubernetes/helm) (Leverage OpenVisualCloud) 48 | - [Smart City Application Helm Charts](https://github.com/OpenVisualCloud/Smart-City-Sample/tree/master/deployment/kubernetes/helm) (Leverage OpenVisualCloud) 49 | - [Telemetry Sample Application Helm Charts](https://github.com/smart-edge-open/edgeapps/tree/master/applications/telemetry-sample-app) 50 | - [EIS Sample Application Helm Charts](https://github.com/smart-edge-open/edgeapps/tree/master/applications/eis-experience-kit) 51 | - Network Functions 52 | - [FlexRAN Helm Charts](https://github.com/smart-edge-open/edgeapps/tree/master/network-functions/ran/charts/du-dev) 53 | - [xRAN Helm Charts](https://github.com/smart-edge-open/edgeapps/tree/master/network-functions/xran/helmcharts/xranchart) 54 | - [UPF Helm Charts](https://github.com/smart-edge-open/edgeapps/tree/master/network-functions/core-network/charts/upf) 55 | 56 | The EPA, Telemetry, and k8s plugins helm chart files will be saved in a specific directory on the Smart Edge Open controller. To modify the directory, change the following variable `ne_helm_charts_default_dir` in the `inventory/default/group_vars/all/10-default.yml` file: 57 | ```yaml 58 | ne_helm_charts_default_dir: /opt/openness/helm-charts/ 59 | ``` 60 | 61 | To check helm charts files, run the following command on the Smart Edge Open controller: 62 | ```bash 63 | $ ls /opt/openness/helm-charts/ 64 | vpu-plugin gpu-plugin node-feature-discovery prometheus 65 | ``` 66 | 67 | To check helm releases, run: 68 | ```bash 69 | $ helm list -A 70 | NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION 71 | nfd-release openness 1 2020-05-08 05:13:54.900713372 +0800 CST deployed node-feature-discovery-0.5.0 0.5.0 72 | prometheus telemetry 1 2020-05-08 05:12:09.346590474 +0800 CST deployed prometheus-11.1.6 2.16.0 73 | intel-gpu-plugin default 1 2020-05-08 03:10:05.464149345 +0800 CST deployed intel-gpu-plugin-0.1.0 0.17.0 74 | intel-vpu-plugin default 1 2020-05-08 03:23:44.595413394 +0800 CST deployed intel-vpu-plugin-0.1.0 0.17.0 75 | ``` 76 | > **NOTE**: Different Smart Edge Open flavors contain different platform features. This is just an example of the helm charts. 77 | 78 | To see the values that took effect for a specific release (for example, `nfd-release`), run: 79 | ```bash 80 | $ helm get values nfd-release -n openness 81 | USER-SUPPLIED VALUES: 82 | image: 83 | repository: 10.240.224.84:5000/node-feature-discovery 84 | tag: v0.5.0 85 | serviceAccount: 86 | name: nfd-master 87 | weavenet_cidr: 10.32.0.0/12 88 | weavenet_cidr_enabled: false 89 | ``` 90 | 91 | To customize values and upgrade, users can modify the `values.yaml` file for the helm charts and use `helm upgrade`. Refer to the [Helm CLI Commands List](https://helm.sh/docs/helm/) for details. 92 | 93 | 94 | ## References 95 | - [Helm Website](https://helm.sh) 96 | - [Container Experience Kits](https://github.com/intel/container-experience-kits) 97 | - [Helm Github Repo](https://github.com/helm/charts) 98 | -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epc1.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epc2.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epc3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epc3.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epc_cnca_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epc_cnca_1.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epcconfig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epcconfig.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epctest1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epctest1.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epctest2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epctest2.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epctest3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epctest3.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epctest4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epctest4.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epcupf_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epcupf_add.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epcupf_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epcupf_del.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_epcupf_get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_epcupf_get.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/epc-images/smartedge-open_highlevel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/epc-images/smartedge-open_highlevel.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/5g_edge_data_paths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/5g_edge_data_paths.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/5g_edge_deployment_scenario1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/5g_edge_deployment_scenario1.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/5g_edge_deployment_scenario2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/5g_edge_deployment_scenario2.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/5g_edge_deployment_scenario3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/5g_edge_deployment_scenario3.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/5g_openess_components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/5g_openess_components.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/5g_openess_microservices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/5g_openess_microservices.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/5g_system_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/5g_system_architecture.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/OAuth2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/OAuth2.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/PFD_Management_transaction_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/PFD_Management_transaction_add.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/PFD_Management_transaction_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/PFD_Management_transaction_del.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/PFD_Management_transaction_get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/PFD_Management_transaction_get.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/PFD_Management_transaction_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/PFD_Management_transaction_update.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/e2e_edge_deployment_flows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/e2e_edge_deployment_flows.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/oam_af_service_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/oam_af_service_add.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/oam_af_service_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/oam_af_service_del.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/oam_af_service_get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/oam_af_service_get.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/oam_af_service_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/oam_af_service_update.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/traffic_subscription_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/traffic_subscription_add.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/traffic_subscription_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/traffic_subscription_del.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/traffic_subscription_get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/traffic_subscription_get.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc-images/traffic_subscription_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/ngc-images/traffic_subscription_update.png -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/AF_traffic_influence_add.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 300 10 | skinparam sequenceArrowThickness 3 11 | 12 | header Intel Corporation 13 | footer Proprietary and Confidential 14 | title Traffic influencing flows between Smart Edge Open controller and 5G Core 15 | 16 | actor "User/Admin" as user 17 | box "Smart Edge Open Controller components" #LightBlue 18 | participant "UI/CLI" as cnca 19 | participant "AF Microservice" as af 20 | end box 21 | box "5G Core components" #LightGreen 22 | participant "NEF" as nef 23 | note over nef 24 | Smart Edge Open provided 25 | Core component with 26 | limited functionality 27 | end note 28 | participant "NGC\nCP Functions" as ngccp 29 | end box 30 | 31 | group Traffic influence submission flow 32 | user -> cnca : Traffic influencing request 33 | activate cnca 34 | cnca -> af : /af/v1/subscriptions: POST \n {3GPP TS 29.522v15.3 \n Sec. 5.4}* 35 | activate af 36 | af -> nef : /3gpp-traffic-Influence/v1/{afId}/subscriptions : POST \n {3GPP TS 29.522v15.3 \n Sec. 5.4} 37 | activate nef 38 | nef -> nef : NGC_STUB(PCF,UDR,BSF) 39 | nef -> ngccp : {Open: 3rd party NGC integration with Smart Edge Open(NEF)} 40 | ngccp --> nef : 41 | nef --> af : OK: {subscriptionId} \n ERROR: {400/500} 42 | deactivate nef 43 | af --> cnca : OK: {subscriptionId} \n ERROR: {400/500} 44 | deactivate af 45 | cnca --> user : Success: {subscriptionId} 46 | deactivate cnca 47 | end group 48 | 49 | @enduml 50 | 51 | -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/AF_traffic_influence_delete.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 300 10 | skinparam sequenceArrowThickness 3 11 | 12 | header Intel Corporation 13 | footer Proprietary and Confidential 14 | title Traffic influencing flows between Smart Edge Open controller and 5G Core 15 | 16 | actor "User/Admin" as user 17 | box "Smart Edge Open Controller components" #LightBlue 18 | participant "UI/CLI" as cnca 19 | participant "AF Microservice" as af 20 | end box 21 | box "5G Core components" #LightGreen 22 | participant "NEF" as nef 23 | note over nef 24 | Smart Edge Open provided 25 | Core component with 26 | limited functionality 27 | end note 28 | participant "NGC\nCP Functions" as ngccp 29 | end box 30 | 31 | 32 | group Delete a subscribed traffic influence by subscriptionId 33 | user -> cnca : Delete request by subscriptionId 34 | activate cnca 35 | cnca -> af : /af/v1/subscriptions/{subscriptionId} : DELETE 36 | activate af 37 | af -> nef : /3gpp-traffic-Influence/v1/{afId}/subscriptions/{subscriptionId} : DELETE 38 | activate nef 39 | nef -> nef : NGC_STUB(PCF,UDR,BSF) 40 | nef -> ngccp : {Open: 3rd party NGC integration with Smart Edge Open(NEF)} 41 | ngccp --> nef : 42 | nef --> af : OK : Delete success \n ERROR: {400/500} 43 | deactivate nef 44 | af --> cnca : OK : Delete success \n ERROR: {400/500} 45 | deactivate af 46 | cnca --> user : Success/Error 47 | deactivate cnca 48 | end group 49 | 50 | @enduml 51 | 52 | -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/AF_traffic_influence_get.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 300 10 | skinparam sequenceArrowThickness 3 11 | 12 | header Intel Corporation 13 | footer Proprietary and Confidential 14 | title Traffic influencing flows between Smart Edge Open controller and 5G Core 15 | 16 | actor "User/Admin" as user 17 | box "Smart Edge Open Controller components" #LightBlue 18 | participant "UI/CLI" as cnca 19 | participant "AF Microservice" as af 20 | end box 21 | box "5G Core components" #LightGreen 22 | participant "NEF" as nef 23 | note over nef 24 | Smart Edge Open provided 25 | Core component with 26 | limited functionality 27 | end note 28 | participant "NGC\nCP Functions" as ngccp 29 | end box 30 | 31 | group Get all subscribed traffic influence info 32 | user -> cnca : Request all traffic influence subscribed 33 | activate cnca 34 | cnca -> af : /af/v1/subscriptions : GET 35 | activate af 36 | af -> nef : /3gpp-traffic-Influence/v1/{afId}/subscriptions : GET 37 | activate nef 38 | nef -> nef : NGC_STUB(PCF,UDR,BSF) 39 | nef -> ngccp : {Open: 3rd party NGC integration with Smart Edge Open(NEF)} 40 | ngccp --> nef : 41 | nef --> af : OK: traffic influence info \n ERROR: {400/500} 42 | deactivate nef 43 | af --> cnca : OK: traffic influence info \n ERROR: {400/500} 44 | deactivate af 45 | cnca --> user : Traffic influence details 46 | deactivate cnca 47 | end group 48 | 49 | group Get subscribed traffic influence info by subscriptionId 50 | user -> cnca : Request traffic influence using subscriptionId 51 | activate cnca 52 | cnca -> af : /af/v1/subscriptions/{subscriptionId} : GET 53 | activate af 54 | af -> nef : /3gpp-traffic-Influence/v1/{afId}/subscriptions/{subscriptionId} : GET 55 | activate nef 56 | nef -> nef : NGC_STUB(PCF,UDR,BSF) 57 | nef -> ngccp : {Open: 3rd party NGC integration with Smart Edge Open(NEF)} 58 | ngccp --> nef : 59 | nef --> af : OK: traffic influence info \n ERROR: {400/500} 60 | deactivate nef 61 | af --> cnca : OK: traffic influence info \n ERROR: {400/500} 62 | deactivate af 63 | cnca --> user : Traffic influence details 64 | deactivate cnca 65 | end group 66 | 67 | @enduml 68 | 69 | -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/AF_traffic_influence_update.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 300 10 | skinparam sequenceArrowThickness 3 11 | 12 | header Intel Corporation 13 | footer Proprietary and Confidential 14 | title Traffic influencing flows between Smart Edge Open controller and 5G Core 15 | 16 | actor "User/Admin" as user 17 | box "Smart Edge Open Controller components" #LightBlue 18 | participant "UI/CLI" as cnca 19 | participant "AF Microservice" as af 20 | end box 21 | box "5G Core components" #LightGreen 22 | participant "NEF" as nef 23 | note over nef 24 | Smart Edge Open provided 25 | Core component with 26 | limited functionality 27 | end note 28 | participant "NGC\nCP Functions" as ngccp 29 | end box 30 | 31 | group Update a subscribed traffic influence by subscriptionId 32 | user -> cnca : Update request by subscriptionId 33 | activate cnca 34 | cnca -> af : /af/v1/subscriptions/{subscriptionId} : PUT 35 | activate af 36 | af -> nef : /3gpp-traffic-Influence/v1/{afId}/subscriptions/{subscriptionId} : PUT 37 | activate nef 38 | nef -> nef : NGC_STUB(PCF,UDR,BSF) 39 | nef -> ngccp : {Open: 3rd party NGC integration with Smart Edge Open(NEF)} 40 | ngccp --> nef : 41 | nef --> af : OK : Update success, traffic influence info \n ERROR: {400/500} 42 | deactivate nef 43 | af --> cnca : OK : Update success, traffic influence info \n ERROR: {400/500} 44 | deactivate af 45 | cnca --> user : Success/Error 46 | deactivate cnca 47 | end group 48 | 49 | @enduml 50 | 51 | -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/PFD_Management_transaction_delete.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 300 10 | skinparam sequenceArrowThickness 3 11 | 12 | header Intel Corporation 13 | footer Proprietary and Confidential 14 | 15 | title PFD flow between Openness and 5G core 16 | 17 | actor Admin as user 18 | participant "UI/CLI" as UI 19 | participant "Af Microservice" as AF 20 | participant "NEF" as NEF 21 | participant "NGC CP Function" as 5GC 22 | 23 | box "Smart Edge Open Controller Components" #LightBlue 24 | participant UI 25 | participant AF 26 | end box 27 | 28 | box "5G Core Components" #LightGreen 29 | participant NEF 30 | note over NEF 31 | Smart Edge Open provided 32 | Core component with 33 | limited functionality 34 | end note 35 | participant 5GC 36 | end box 37 | 38 | group Detete PFD transaction with transactionId 39 | user -> UI : Detete request by transactionId 40 | UI -> AF : af/v1/pfd/transactions/{transactionId} DELETE 41 | AF -> NEF : 3gpp-pfd-management/v1/{scsAsId}/transactions/{transactionId} DELETE 42 | NEF -> NEF : NGC_STUB (UDR SMF) 43 | 44 | NEF -> AF : OK \ ERROR 45 | AF -> UI : OK: \ ERROR 46 | UI -> user : Success \ ERROR 47 | end 48 | 49 | group Detete applicationId in PFD transaction 50 | user -> UI : Detete request by applicationId 51 | UI -> AF : af/v1/pfd/transactions/{transactionId}/{transactionId}/applications/{appId} DELETE 52 | AF -> NEF : 3gpp-pfd-management/v1/{scsAsId}/transactions/{transactionId}/{transactionId}/applications/{appId} DELETE 53 | NEF -> NEF : NGC_STUB (UDR SMF) 54 | 55 | NEF -> AF : OK \ ERROR 56 | AF -> UI : OK: \ ERROR 57 | UI -> user : Success \ ERROR 58 | end 59 | 60 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/PFD_Management_transaction_get.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 300 10 | skinparam sequenceArrowThickness 3 11 | 12 | header Intel Corporation 13 | footer Proprietary and Confidential 14 | 15 | title PFD flow between Openness and 5G core 16 | 17 | 18 | actor Admin as user 19 | participant "UI/CLI" as UI 20 | participant "Af Microservice" as AF 21 | participant "NEF" as NEF 22 | participant "NGC CP Function" as 5GC 23 | 24 | box "Smart Edge Open Controller Components" #LightBlue 25 | participant UI 26 | participant AF 27 | end box 28 | 29 | box "5G Core Components" #LightGreen 30 | participant NEF 31 | note over NEF 32 | Smart Edge Open provided 33 | Core component with 34 | limited functionality 35 | end note 36 | participant 5GC 37 | end box 38 | 39 | group Get all transactions with PFD 40 | user -> UI : Request all PFD transactions 41 | UI -> AF : af/v1/pfd/transaction GET 42 | AF -> NEF : 3gpp-pfd-management/v1/{scsAsId}/transactions/ GET 43 | NEF -> NEF : NGC_STUB (UDR SMF) 44 | 45 | NEF -> AF : OK: PFD information \ ERROR 46 | AF -> UI : OK: PFD information \ ERROR 47 | UI -> user : PFD details 48 | end 49 | 50 | group Get transactions with transactionId 51 | user -> UI : Request transaction with transactionId 52 | UI -> AF : af/v1/pfd/transactions/{transactionId} GET 53 | AF -> NEF : 3gpp-pfd-management/v1/{scsAsId}/transactions/{transactionId} GET 54 | NEF -> NEF : NGC_STUB (UDR SMF) 55 | 56 | NEF -> AF : OK: PFD information \ ERROR 57 | AF -> UI : OK: PFD information \ ERROR 58 | UI -> user : PFD details 59 | end 60 | 61 | group Get transactions with applicationId 62 | user -> UI : Request transactions with applicationId 63 | UI -> AF : af/v1/pfd/transactions/{transactionId}/applications/{appId} GET 64 | AF -> NEF : 3gpp-pfd-management/v1/{scsAsId}/transactions/{transactionId}/applications/{appId} GET 65 | NEF -> NEF : NGC_STUB (UDR SMF) 66 | 67 | NEF -> AF : OK: PFD information \ ERROR 68 | AF -> UI : OK: PFD information \ ERROR 69 | UI -> user : PFD details 70 | end 71 | 72 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/PFD_Managment_transaction_add.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 300 10 | skinparam sequenceArrowThickness 3 11 | 12 | header Intel Corporation 13 | footer Proprietary and Confidential 14 | 15 | title PFD flow between Openness and 5G core 16 | 17 | 18 | actor "User/Admin" as user 19 | participant "UI/CLI" as UI 20 | participant "Af Microservice" as AF 21 | participant "NEF" as NEF 22 | participant "NGC CP Function" as 5GC 23 | 24 | box "Smart Edge Open Controller Components" #LightBlue 25 | participant UI 26 | participant AF 27 | end box 28 | 29 | box "5G Core Components" #LightGreen 30 | participant NEF 31 | note over NEF 32 | Smart Edge Open provided 33 | Core component with 34 | limited functionality 35 | end note 36 | participant 5GC 37 | end box 38 | 39 | group PFD transaction creation flow 40 | user -> UI : PFD transaction create 41 | UI -> AF : /af/v1/pfd/transaction POST 42 | AF -> NEF : /3gpp-pfd-management/v1/{scsAsId}/transactions/ POST 43 | NEF -> NEF : NGC_STUB (UDR SMF) 44 | 45 | NEF -> AF : OK: transactionId \ ERROR 46 | AF -> UI : OK: transactionId \ ERROR 47 | UI -> user : Success: transactionId 48 | end 49 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/PFD_management_transaction_update.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 300 10 | skinparam sequenceArrowThickness 3 11 | 12 | header Intel Corporation 13 | footer Proprietary and Confidential 14 | 15 | title PFD flow between Openness and 5G core 16 | 17 | actor Admin as user 18 | participant "UI/CLI" as UI 19 | participant "Af Microservice" as AF 20 | participant "NEF" as NEF 21 | participant "NGC CP Function" as 5GC 22 | 23 | box "Smart Edge Open Controller Components" #LightBlue 24 | participant UI 25 | participant AF 26 | end box 27 | 28 | box "5G Core Components" #LightGreen 29 | participant NEF 30 | note over NEF 31 | Smart Edge Open provided 32 | Core component with 33 | limited functionality 34 | end note 35 | 36 | participant 5GC 37 | end box 38 | 39 | group Update PFD transaction with transactionId 40 | user -> UI : Update request by transactionId 41 | UI -> AF : af/v1/pfd/transactions/{transactionId} PUT 42 | AF -> NEF : 3gpp-pfd-management/v1/{scsAsId}/transactions/{transactionId} PUT 43 | NEF -> NEF : NGC_STUB (UDR SMF) 44 | 45 | NEF -> AF : OK: Updated PFD information \ ERROR 46 | AF -> UI : OK: Updated PFD information \ ERROR 47 | UI -> user : Updated PFD details \ ERROR 48 | end 49 | 50 | group Update applicationId PFD in a transaction 51 | user -> UI : Update request with applicationId 52 | UI -> AF : af/v1/pfd/transactions/{transactionId}/applications/{appId} PUT 53 | AF -> NEF : 3gpp-pfd-management/v1/{scsAsId}/transactions/{transactionId}/applications/{appId} PUT 54 | NEF -> NEF : NGC_STUB (UDR SMF) 55 | 56 | NEF -> AF : OK: Updated PFD information \ ERROR 57 | AF -> UI : OK: Updated PFD information \ ERROR 58 | UI -> user : PFD details updated \ERROR 59 | end 60 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/e2e_config_flow_for_5g_edge.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | skinparam monochrome false 6 | skinparam roundcorner 20 7 | skinparam defaultFontName "Intel Clear" 8 | skinparam defaultFontSize 20 9 | skinparam maxmessagesize 400 10 | skinparam sequenceArrowThickness 3 11 | 12 | header "Intel Corporation" 13 | footer "Proprietary and Confidential" 14 | title "5G End to End Edge deployment flows" 15 | 16 | participant "UE" as ue 17 | 18 | box "5G Core NF components" #LightGreen 19 | participant "AMF" as amf 20 | participant "SMF" as smf 21 | participant "PCF/UDR" as pcf 22 | participant "NEF" as nef 23 | end box 24 | 25 | box "Edge components" #LightBlue 26 | participant "Smart Edge Open\nAF" as af 27 | participant "OSS" as oss 28 | end box 29 | 30 | box "Data path components" 31 | participant "UPF" as upf 32 | participant "Edge" as edge 33 | participant "Cloud" as cloud 34 | end box 35 | 36 | == 5G CN pre-established == 37 | 38 | group PFD Profile management in PCF/UDR by Operator or AF 39 | note over nef 40 | PFD profiles/rules can be created 41 | Network operator or can be pushed 42 | an external NF. 43 | end note 44 | af -> nef : Create PFD rules \n(as suggested in \n3GPP TS 29.502 Sec. 4.18) 45 | 46 | note over pcf 47 | CP components are updated 48 | with new UPF information. 49 | end note 50 | 51 | nef --> pcf : 52 | nef --> af : 53 | smf --> nef : Fetch the added/modified PFD's 54 | 55 | note over upf 56 | New UPF or UPF with new service 57 | is started to serve edge location. 58 | end note 59 | end 60 | 61 | group Traffic influence in UPF by AF 62 | oss -> af : or traffic influence create action\n can be initiated by external component 63 | af -> nef : Create traffic influence rule and \n Request for notification \n DNAI change \n (as suggested in \n3GPP TS 23.502 Sec. 4.3.6.2) 64 | nef --> pcf : configured to PCF or UDR \n based on traffic rule info. 65 | 66 | 67 | smf -> pcf : UE initiated PDU Session Modification Request \n (as suggested in TS 23.502 Sec. 4.3.3.2.1) 68 | pcf --> pcf : or Network iniated PDU Session Modification Request 69 | pcf --> smf : Updated PFD rules (as suggested by AF) 70 | smf --> upf 71 | smf -> nef : DNAI change notification \n (as suggested in TS 23.502 Sec. 4.3.6.3.1) 72 | end 73 | 74 | group Data traffic from UE 75 | ue -> upf : Edge traffic 76 | upf --> edge : Based on updated PFD rules by AF 77 | 78 | ue -> upf : Traffic towards Cloud (or all other traffic) 79 | upf --> cloud : 80 | end 81 | 82 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/ngcoam_af_service_add.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | 6 | skinparam monochrome false 7 | skinparam roundcorner 20 8 | skinparam defaultFontName "Intel Clear" 9 | skinparam defaultFontSize 20 10 | skinparam maxmessagesize 400 11 | skinparam sequenceArrowThickness 3 12 | 13 | header "Intel Corporation" 14 | footer "Proprietary and Confidential" 15 | title "NGC OAM flows between Smart Edge Open Controller and NGC Core OAM Component" 16 | 17 | actor "Admin" as user 18 | box "Smart Edge Open Controller" #LightBlue 19 | participant "UI/CLI" as cnca 20 | end box 21 | box "NGC component" #LightGreen 22 | participant "OAM" as oam 23 | note over oam 24 | Smart Edge Open provided component 25 | with REST based HTTP interface 26 | (for reference) 27 | end note 28 | participant "NGC \n CP Functions" as ngccp 29 | end box 30 | 31 | == AF services operations with NGC Core through OAM Component == 32 | group AF services registration with 5G Core 33 | user -> cnca : Register AF services (UI): \n {dnn, dnai, snssai, tac, dns-ip, upf-ip} 34 | activate cnca 35 | cnca -> oam : /ngcoam/v1/af/services : POST \n {dnn, dnai, snssai, tac, dns-ip, upf-ip} 36 | activate oam 37 | oam -> oam : NGC_OAM_STUB() 38 | oam -> ngccp : {Open: 3rd Party NGC integration with Smart Edge Open(oam)} 39 | ngccp --> oam : 40 | oam --> cnca : OK : {afServiceId} \n ERROR: {400/500} 41 | deactivate oam 42 | cnca --> user : Success/Failure : {afServiceId} 43 | deactivate cnca 44 | end 45 | 46 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/ngcoam_af_service_delete.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | 6 | skinparam monochrome false 7 | skinparam roundcorner 20 8 | skinparam defaultFontName "Intel Clear" 9 | skinparam defaultFontSize 20 10 | skinparam maxmessagesize 400 11 | skinparam sequenceArrowThickness 3 12 | 13 | header "Intel Corporation" 14 | footer "Proprietary and Confidential" 15 | title "NGC OAM flows between Smart Edge Open Controller and NGC Core OAM Component" 16 | 17 | actor "Admin" as user 18 | box "Smart Edge Open Controller" #LightBlue 19 | participant "UI/CLI" as cnca 20 | end box 21 | box "NGC component" #LightGreen 22 | participant "OAM" as oam 23 | note over oam 24 | Smart Edge Open provided component 25 | with REST based HTTP interface 26 | (for reference) 27 | end note 28 | participant "NGC \n CP Functions" as ngccp 29 | end box 30 | 31 | == AF services operations with NGC Core through OAM Component == 32 | 33 | group AF services deregistration with 5G Core 34 | user -> cnca : Deregister AF services from 5G Core (UI): \n {afServiceId} 35 | activate cnca 36 | cnca -> oam : /ngcoam/v1/af/services/{afServiceId}: DELETE 37 | activate oam 38 | oam -> oam : NGC_OAM_STUB() 39 | oam -> ngccp : {Open: 3rd Party NGC integration with Smart Edge Open(oam)} 40 | ngccp --> oam : 41 | oam --> cnca : OK \n ERROR: {400/500} 42 | deactivate oam 43 | cnca --> user : Success/Failure 44 | deactivate cnca 45 | end 46 | 47 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/ngcoam_af_service_get.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | 6 | skinparam monochrome false 7 | skinparam roundcorner 20 8 | skinparam defaultFontName "Intel Clear" 9 | skinparam defaultFontSize 20 10 | skinparam maxmessagesize 400 11 | skinparam sequenceArrowThickness 3 12 | 13 | header "Intel Corporation" 14 | footer "Proprietary and Confidential" 15 | title "NGC OAM flows between Smart Edge Open Controller and NGC Core OAM Component" 16 | 17 | actor "Admin" as user 18 | box "Smart Edge Open Controller" #LightBlue 19 | participant "UI/CLI" as cnca 20 | end box 21 | box "NGC component" #LightGreen 22 | participant "OAM" as oam 23 | note over oam 24 | Smart Edge Open provided component 25 | with REST based HTTP interface 26 | (for reference) 27 | end note 28 | participant "NGC \n CP Functions" as ngccp 29 | end box 30 | 31 | 32 | group Get AF registered DNN services from NGC Core 33 | user -> cnca : Get AF registered DNN services info : {afServiceId} 34 | activate cnca 35 | cnca -> oam : /ngcoam/v1/af/services/{afServiceId}: GET 36 | activate oam 37 | oam -> oam : NGC_OAM_STUB() 38 | oam -> ngccp : {Open: 3rd Party NGC integration with Smart Edge Open(oam)} 39 | ngccp --> oam : 40 | oam --> cnca : OK : {dnn, dnai, snssai, tac, dnsIp, upfIp} \n ERROR: {400/500} 41 | deactivate oam 42 | cnca --> user : DNN services info associated with afServiceId 43 | deactivate cnca 44 | end 45 | 46 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/ngc_flows/ngcoam_af_service_update.uml: -------------------------------------------------------------------------------- 1 | @startuml 2 | /' SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2020 Intel Corporation 4 | '/ 5 | 6 | skinparam monochrome false 7 | skinparam roundcorner 20 8 | skinparam defaultFontName "Intel Clear" 9 | skinparam defaultFontSize 20 10 | skinparam maxmessagesize 400 11 | skinparam sequenceArrowThickness 3 12 | 13 | header "Intel Corporation" 14 | footer "Proprietary and Confidential" 15 | title "NGC OAM flows between Smart Edge Open Controller and NGC Core OAM Component" 16 | 17 | actor "Admin" as user 18 | box "Smart Edge Open Controller" #LightBlue 19 | participant "UI/CLI" as cnca 20 | end box 21 | box "NGC component" #LightGreen 22 | participant "OAM" as oam 23 | note over oam 24 | Smart Edge Open provided component 25 | with REST based HTTP interface 26 | (for reference) 27 | end note 28 | participant "NGC \n CP Functions" as ngccp 29 | end box 30 | 31 | == AF services operations with NGC Core through OAM Component == 32 | 33 | group Update DNS config values for DNN served by Edge DNN 34 | user -> cnca : Update DNS configuration of DNN (UI): \n {afServiceId, dnn, dnai, snssai, tac, dns-ip, upf-ip} 35 | activate cnca 36 | cnca -> oam : /ngcoam/v1/af/services/{afServiceId} : PATCH \n {dnn, dnai, snssai, tac, dns-ip, upf-ip} 37 | activate oam 38 | oam -> oam : NGC_OAM_STUB() 39 | oam -> ngccp : {Open: 3rd Party NGC integration with Smart Edge Open(oam)} 40 | ngccp --> oam : 41 | oam --> cnca : OK \n ERROR: {400/500} 42 | deactivate oam 43 | cnca --> user : Success/Failure 44 | deactivate cnca 45 | end 46 | 47 | @enduml -------------------------------------------------------------------------------- /doc/reference-architectures/core-network/smartedge-open-core.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smart-edge-open/specs/b8cbd91c31862079d691f3570cb5b72bbfcf170a/doc/reference-architectures/core-network/smartedge-open-core.png -------------------------------------------------------------------------------- /doc/reference-architectures/index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | --- 7 | title: Smart Edge Open Documentation 8 | description: Home 9 | layout: smartedge-open 10 | --- 11 |

    You are being redirected to the Smart Edge Open Docs.

    12 | 15 | -------------------------------------------------------------------------------- /js/custom.js: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: Apache-2.0 2 | * Copyright (c) 2020 Intel Corporation 3 | */ 4 | 5 | jQuery(document).ready(function(){ 6 | 7 | var url = jQuery(location).attr('href').split("/").reverse()[2]; 8 | if(typeof url != 'undefined' && url != ''){ 9 | jQuery('li.'+url).parent('ul.parent').siblings('i').addClass('fa-angle-down').removeClass('fa-angle-right'); 10 | jQuery('li.'+url).css('display','block'); 11 | jQuery('li.'+url).parent('ul.parent').addClass('visible'); 12 | //jQuery('.collaspeContent ul:not(.parent)').children('li').css('display','block'); 13 | } 14 | 15 | 16 | jQuery('.collaspeContent li').each(function(){ 17 | if(jQuery(this).find('ul').length <= 0){ 18 | jQuery(this).find('i').hide(); 19 | } 20 | }); 21 | 22 | jQuery('.collaspeHead').on('click', function(){ 23 | if(jQuery(this).next('.collaspeContent').is(':visible')){ 24 | jQuery(this).next('.collaspeContent').slideUp(); 25 | } 26 | else{ 27 | jQuery(this).children('ul').removeAttr('style'); 28 | jQuery('.collaspeContent').slideUp(); 29 | jQuery(this).next('.collaspeContent').slideDown(); 30 | } 31 | }); 32 | 33 | jQuery('.quickLinkBtn').on('click', function(){ 34 | jQuery('.collapseArea').slideToggle(); 35 | }); 36 | jQuery('.nav-mobile').on('click', function(){ 37 | jQuery('.smartedge-openmenu').slideToggle(); 38 | }); 39 | 40 | 41 | jQuery('.collaspeContent ul li a').click('on',function(e){ 42 | if(jQuery(this).parent('li').hasClass('with-section')){ 43 | if(jQuery(this).parent('li').children('ul').hasClass('visible')){ 44 | jQuery(this).siblings('ul').removeClass('visible'); 45 | jQuery(this).siblings('i').removeClass('fa-angle-down').addClass('fa-angle-right'); 46 | jQuery(this).siblings('ul').find('li').slideUp(); 47 | }else{ 48 | jQuery(this).siblings('ul').addClass('visible'); 49 | jQuery(this).siblings('i').removeClass('fa-angle-right').addClass('fa-angle-down'); 50 | jQuery(this).siblings('ul').find('li').slideDown(); 51 | } 52 | return false; 53 | } 54 | 55 | /*if(jQuery(this).children('a:first').attr('href') == 'javascript:void(0)'){ alert('3'); 56 | e.stopPropagation(); 57 | e.preventDefault(); 58 | e.stopImmediatePropagation(); 59 | }else{ alert('4'); 60 | // document.location.href=jQuery(this).children('a').attr('href'); 61 | return false; 62 | }*/ 63 | }); 64 | 65 | 66 | 67 | }); 68 | if(jQuery(window).width() <= 768 ){ 69 | jQuery(window).on("resize load",function(){ 70 | if (jQuery(window).width() <= 768 ){ 71 | jQuery('.social-down').remove(); 72 | jQuery('.parent').append(''); 73 | jQuery('.social-down').click(function(){ 74 | if(jQuery(this).parent().find(".nav-child").is(':visible')){ 75 | jQuery('.social-down').prev('.nav-child').slideUp(); 76 | } 77 | else{ 78 | jQuery('.social-down').prev('.nav-child').slideUp(); 79 | jQuery(this).parent().find(".nav-child").slideDown(500); 80 | } 81 | }); 82 | } 83 | }); 84 | }; -------------------------------------------------------------------------------- /schema/5goam/5goam.swagger.yaml: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: Apache-2.0 2 | # Copyright © 2019 Intel Corporation 3 | 4 | swagger: '2.0' 5 | info: 6 | version: 1.0.2 7 | title: 5G OAM Northbound API 8 | contact: 9 | name: intel 10 | url: github.com/smart-edge-open/epcedge 11 | email: support@intel.com 12 | license: 13 | name: Apache 2.0 License 14 | url: 'http://www.apache.org/licenses/LICENSE-2.0.html' 15 | schemes: 16 | - https 17 | consumes: 18 | - application/json 19 | produces: 20 | - application/json 21 | paths: 22 | /ngcoam/v1/af/services: 23 | post: 24 | tags: 25 | - 5GOAM 26 | summary: Add to the registry of afServices 27 | description: >- 28 | Add an afService. One afInstance could have multiple afServices. For 29 | this release, one afService corresponds to one locationService 30 | operationId: Add 31 | parameters: 32 | - in: body 33 | name: body 34 | required: true 35 | schema: 36 | $ref: '#/definitions/locationService' 37 | responses: 38 | '201': 39 | description: Added a new afService. 40 | schema: 41 | $ref: '#/definitions/afServiceRsp' 42 | '400': 43 | description: Invalid properties provided 44 | schema: {} 45 | '403': 46 | description: Unauthorized 47 | schema: {} 48 | get: 49 | tags: 50 | - 5GOAM 51 | summary: GetAll list of afServices 52 | description: Retrieve all the afServices. 53 | operationId: GetAll 54 | parameters: [] 55 | responses: 56 | '200': 57 | description: All the afServices with corresponding afServiceId 58 | schema: 59 | $ref: '#/definitions/afServiceList' 60 | '403': 61 | description: Unauthorized 62 | schema: {} 63 | '/ngcoam/v1/af/services/{afServiceId}': 64 | get: 65 | tags: 66 | - 5GOAM 67 | summary: Get afService by ID 68 | description: 'Retrieves the af service by {afServiceId}' 69 | operationId: Get 70 | parameters: 71 | - name: afServiceId 72 | in: path 73 | required: true 74 | type: string 75 | responses: 76 | '200': 77 | description: The specified afService. 78 | schema: 79 | $ref: '#/definitions/locationService' 80 | '403': 81 | description: Unauthorized 82 | schema: {} 83 | '404': 84 | description: not found 85 | schema: {} 86 | delete: 87 | tags: 88 | - 5GOAM 89 | summary: Delete afService by ID 90 | description: 'Deletes the af service by {afServiceId}' 91 | operationId: Delete 92 | parameters: 93 | - name: afServiceId 94 | in: path 95 | required: true 96 | type: string 97 | responses: 98 | '200': 99 | description: A successful response. 100 | schema: {} 101 | '204': 102 | description: 'Deleted ' 103 | schema: {} 104 | '403': 105 | description: Unauthorized 106 | schema: {} 107 | '404': 108 | description: not found 109 | schema: {} 110 | patch: 111 | tags: 112 | - 5GOAM 113 | summary: Update afService by ID 114 | description: 'Update the af service by {afServiceId}' 115 | operationId: Update 116 | parameters: 117 | - name: afServiceId 118 | in: path 119 | description: The identifier of the af service (read-only) 120 | required: true 121 | type: string 122 | - in: body 123 | name: body 124 | required: true 125 | schema: 126 | $ref: '#/definitions/locationService' 127 | responses: 128 | '200': 129 | description: A successful response. 130 | schema: {} 131 | '204': 132 | description: 'Updated ' 133 | schema: {} 134 | '400': 135 | description: Invalid properties provided 136 | schema: {} 137 | '403': 138 | description: Unauthorized 139 | schema: {} 140 | '404': 141 | description: not found 142 | schema: {} 143 | definitions: 144 | afServiceId: 145 | type: string 146 | description: ID of a single AF Service. 32bit INT value 147 | example: '12345678' 148 | dnn: 149 | type: string 150 | description: data network name 151 | dnai: 152 | type: string 153 | description: dnai 154 | dns: 155 | type: string 156 | description: DNS IPv4 address 157 | upf-ip: 158 | type: string 159 | description: UPF IPv4 address 160 | tac: 161 | type: integer 162 | description: Decimal value of TAC 163 | snssai: 164 | type: string 165 | description: 'Single Network Slice Selection Assistance Information, ''st-sd'' format' 166 | locationService: 167 | type: object 168 | properties: 169 | dnai: 170 | $ref: '#/definitions/dnai' 171 | dnn: 172 | $ref: '#/definitions/dnn' 173 | tac: 174 | $ref: '#/definitions/tac' 175 | priDns: 176 | $ref: '#/definitions/dns' 177 | secDns: 178 | $ref: '#/definitions/dns' 179 | upfIp: 180 | $ref: '#/definitions/upf-ip' 181 | snssai: 182 | $ref: '#/definitions/snssai' 183 | description: Single location service info 184 | afServiceList: 185 | type: array 186 | items: 187 | type: object 188 | properties: 189 | afServiceId: 190 | $ref: '#/definitions/afServiceId' 191 | LocationService: 192 | $ref: '#/definitions/locationService' 193 | description: 'Multiple afServices info ' 194 | afServiceRsp: 195 | type: object 196 | properties: 197 | afServiceId: 198 | $ref: '#/definitions/afServiceId' 199 | description: The afService post response body info 200 | 201 | -------------------------------------------------------------------------------- /schema/auth/auth.swagger.json: -------------------------------------------------------------------------------- 1 | { 2 | "swagger": "2.0", 3 | "info": { 4 | "title": "Auth API", 5 | "version": "1.0.0", 6 | "contact": { 7 | "name": "Smart Edge", 8 | "url": "github.com/smartedgemec/auth", 9 | "email": "support@smart-edge.com" 10 | }, 11 | "license": { 12 | "name": "Apache 2.0 License", 13 | "url": "https://github.com/smartedgemec/schema/blob/master/LICENSE" 14 | } 15 | }, 16 | "schemes": [ 17 | "http" 18 | ], 19 | "consumes": [ 20 | "application/json" 21 | ], 22 | "produces": [ 23 | "application/json" 24 | ], 25 | "paths": { 26 | "/auth": { 27 | "post": { 28 | "description": "Request authentication credentials", 29 | "operationId": "RequestCredentials", 30 | "responses": { 31 | "200": { 32 | "description": "A successful response.", 33 | "schema": { 34 | "$ref": "#/definitions/authCredentials" 35 | } 36 | }, 37 | "201": { 38 | "description": "Authentication credentials created", 39 | "schema": {} 40 | }, 41 | "401": { 42 | "description": "Unauthorized", 43 | "schema": {} 44 | }, 45 | "404": { 46 | "description": "Requested identity not known/found", 47 | "schema": {} 48 | } 49 | }, 50 | "parameters": [ 51 | { 52 | "name": "body", 53 | "in": "body", 54 | "required": true, 55 | "schema": { 56 | "$ref": "#/definitions/authIdentity" 57 | } 58 | } 59 | ], 60 | "tags": [ 61 | "AuthService" 62 | ] 63 | } 64 | } 65 | }, 66 | "definitions": { 67 | "authCredentials": { 68 | "type": "object", 69 | "properties": { 70 | "id": { 71 | "type": "string", 72 | "title": "An identifier for the set of credentials" 73 | }, 74 | "certificate": { 75 | "type": "string", 76 | "title": "A PEM-encoded signed certificate for the CSR" 77 | }, 78 | "ca_chain": { 79 | "type": "array", 80 | "items": { 81 | "type": "string" 82 | }, 83 | "title": "A PEM-encoded certificate chain, starting with the issuing CA and\nending with the root CA (inclusive)" 84 | }, 85 | "ca_pool": { 86 | "type": "array", 87 | "items": { 88 | "type": "string" 89 | }, 90 | "title": "A PEM-encoded CAs to be added to the client's CA pool" 91 | } 92 | }, 93 | "description": "Credentials defines a response for a request to obtain authentication\ncredentials. These credentials may be used to further communicate with\nendpoint(s) that are protected by a form of authentication.\n\nAny strings that are annotated as \"PEM-encoded\" implies that encoding format\nis used, with any newlines indicated with `\\n` characters. Most languages\nprovide encoders that correctly marshal this out. For more information,\nsee the RFC here: https://tools.ietf.org/html/rfc7468" 94 | }, 95 | "authIdentity": { 96 | "type": "object", 97 | "properties": { 98 | "csr": { 99 | "type": "string", 100 | "title": "A PEM-encoded certificate signing request (CSR)" 101 | } 102 | }, 103 | "description": "Identity defines a request to obtain authentication credentials. These\ncredentials would be used to further communicate with endpoint(s) that are\nprotected by a form of authentication.\n\nAny strings that are annotated as \"PEM-encoded\" implies that encoding format\nis used, with any newlines indicated with `\\n` characters. Most languages\nprovide encoders that correctly marshal this out. For more information,\nsee the RFC here: https://tools.ietf.org/html/rfc7468" 104 | } 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /schema/controller/README.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Controller API 7 | ## Introduction 8 | Controller APIs are important APIs for those managing one or many edge nodes. These APIs allow centralize management of nodes. The API enables a developer to maintain a list of nodes, configure apps, manage policies and DNS, and more. The Controller API represents an abstraction layer for an operations administrator. While individual edge nodes may be managed singularly, the Controller API allows for management in a scalable way. Furthermore, it allows for secure communication to the many edge nodes. 9 | 10 | The Controller API is implemented using HTTP REST. 11 | 12 | ## Contributing 13 | If you wish to make contributions to this schema, please use the YAML version of the Swagger schema to do so. The JSON schema is only provided as a redundant reference and is **100% generated**. You **must** generate the JSON schema after making contributions to the YAML. In the future, this package may include tooling to do so automatically. For now, https://editor.swagger.io is a great tool which can generate the JSON for you from the YAML you've edited. Contributions that do not edit the YAML will not be considered. Contributions that do not have alignment between the YAML and JSON changes will also not be considered. 14 | -------------------------------------------------------------------------------- /schema/cups/README.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # 4G Control and User Plane Separation (CUPS) Management API 7 | 8 | The 4G CUPS Management API defines a common API to manage a 3GPP CUPS element. 9 | This allows a party to configure user planes through a centralized management 10 | interface. 11 | 12 | ## How to Generate OpenAPI 2.0 13 | 14 | First, install all prerequisites: 15 | 16 | * `go install github.com/ben-krieger/grpc-gateway/protoc-gen-swagger` 17 | 18 | Currently we are using a fork of grpc-gateway's library and protoc-gen-swagger 19 | plugin binary in order to support read-only attributes. 20 | 21 | Assuming that your directory structure looks like this 22 | 23 | ``` 24 | ├── code.smart-edge.com 25 | │   └── cups 26 | │   ├── pb 27 | ├── github.com 28 |    └── ben-krieger 29 |    │ └── grpc-gateway 30 | │   │ ├── protoc-gen-grpc-gateway 31 |    │ │ │   ├── descriptor 32 |    │ │ │   ├── generator 33 |    │ │ │   ├── gengateway 34 |    │ │ │   └── httprule 35 |    │ │ └── protoc-gen-swagger 36 |    │ │    ├── genswagger 37 |    │ │    └── options 38 |    │ └── grpc-ecosystem 39 |    │ ├── grpc-gateway 40 |    └── smartedgemec 41 |    ├── controller-ce 42 |    │   └── cmd 43 |    ├── schema 44 |    │   ├── cups 45 |    │   ├── eaa 46 | │ ├── ela 47 |    │   └── pb 48 |    └── uml 49 |       └── eaa 50 | ``` 51 | 52 | the commands to generate the schema and .pb.go will be 53 | 54 | ``` 55 | protoc -I./pb -I../../ben-krieger/grpc-gateway -I../../ben-krieger/grpc-gateway/third_party/googleapis --swagger_out=allow_repeated_fields_in_body=true,logtostderr=true:cups ./pb/cups.proto 56 | 57 | protoc -I./pb -I../../grpc-ecosystem/grpc-gateway -I../../grpc-ecosystem/grpc-gateway/third_party/googleapis --go_out=plugins=grpc:../../.. ./pb/cups.proto 58 | ``` 59 | -------------------------------------------------------------------------------- /schema/eaa/README.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Edge Application Agent - EAA 7 | 8 | The Edge Application Agent is a service that runs on the appliance and operates 9 | as a discovery service and basic message bus between applications via pubsub. 10 | The connectivity and discoverability of applications by one another is governed 11 | by an entitlement system and is controlled by policies set with the MEC 12 | Platform Controller. 13 | 14 | The entitlement system is still in its infancy, however, and currently allows 15 | all applications to discover one another as well as publish and subscribe to 16 | all notifications. 17 | 18 | ## How to Generate OpenAPI 2.0 19 | 20 | First, install all prerequisites: 21 | 22 | * `go install github.com/ben-krieger/grpc-gateway/protoc-gen-swagger` 23 | 24 | Currently we are using a fork of grpc-gateway's library and protoc-gen-swagger 25 | plugin binary in order to support read-only attributes and 26 | 27 | Assuming that your directory structure looks like this 28 | 29 | ``` 30 | ├── ben-krieger 31 | │   └── grpc-gateway 32 | │   ├── protoc-gen-grpc-gateway 33 | │   │   ├── descriptor 34 | │   │   ├── generator 35 | │   │   ├── gengateway 36 | │   │   └── httprule 37 | │   └── protoc-gen-swagger 38 | │      ├── genswagger 39 | │      └── options 40 | └── smartedgemec 41 |    ├── controller-ce 42 |    │   └── cmd 43 |    ├── schema 44 |    │   ├── eaa 45 |    │   └── pb 46 |    └── uml 47 |       └── eaa 48 | ``` 49 | 50 | the command to generate the schema will be 51 | 52 | ``` 53 | protoc -I./pb -I../../ben-krieger/grpc-gateway -I../../ben-krieger/grpc-gateway/third_party/googleapis --swagger_out=allow_repeated_fields_in_body=true,logtostderr=true:eaa ./pb/eaa.proto 54 | ``` 55 | 56 | ## Sequence Diagram 57 | 58 | @startuml 59 | title EAA 60 | skinparam BoxPadding 10 61 | skinparam ParticipantPadding 10 62 | 63 | box "Applications" #LightSkyBlue 64 | participant "Consumer App" as app1 65 | participant "Producer App" as app2 66 | end box 67 | box "Platform" #LightCoral 68 | participant "EAA" as eaa 69 | end box 70 | 71 | == Connection Establishment == 72 | app1 -> eaa: ""GET /notifications"" 73 | activate eaa 74 | return ""HTTP 101: Upgrade"" 75 | app1 <<-->> eaa: [WSS] Connected 76 | 77 | == Service Activation == 78 | note left of eaa: ""urn = {urn.namespace} + ':' + {urn.id}"" 79 | app2 -> eaa: ""POST /services""\n\ 80 | ""Auth: /CN={urn}""\n\ 81 | ""{ ""\n\ 82 | "" "description": "string"""\n\ 83 | "" "notifications": [""\n\ 84 | "" "name": "string" ""\n\ 85 | "" "version": "string" ""\n\ 86 | "" "description": "string" ""\n\ 87 | "" ]""\n\ 88 | ""} "" 89 | activate eaa 90 | return ""HTTP 200: OK"" 91 | 92 | == Service Discovery == 93 | app1 -> eaa: ""GET /services"" 94 | activate eaa 95 | return ""HTTP 200: application/json""\n\ 96 | ""[""\n\ 97 | "" { ""\n\ 98 | "" "urn": {""\n\ 99 | "" "id": "string"""\n\ 100 | "" "namespace": "string"""\n\ 101 | "" }""\n\ 102 | "" "description": "string" ""\n\ 103 | "" "endpoint_uri": "string" ""\n\ 104 | "" "status": "string" ""\n\ 105 | "" "notifications": [ ""\n\ 106 | "" { ""\n\ 107 | "" "name": "string" ""\n\ 108 | "" "version": "string" ""\n\ 109 | "" "description": "string" ""\n\ 110 | "" } ""\n\ 111 | "" ] ""\n\ 112 | "" } ""\n\ 113 | ""]"" 114 | 115 | == Service Subscription == 116 | app1 -> eaa: ""POST /subscriptions/{urn.namespace}/{urn.id}""\n\ 117 | ""[ ""\n\ 118 | "" "name": "string" ""\n\ 119 | "" "version": "string" ""\n\ 120 | ""] "" 121 | activate eaa 122 | return ""HTTP 201: Subscribed"" 123 | 124 | == Publish Update == 125 | app2 -> eaa: ""POST /notifications""\n\ 126 | ""{""\n\ 127 | "" "name": "string" ""\n\ 128 | "" "version": "string" ""\n\ 129 | "" "payload": "object" ""\n\ 130 | ""}"" 131 | activate eaa 132 | return ""HTTP 202: Accepted"" 133 | group to all subscribers 134 | eaa -->> app1: ""[WSS] DATA""\n\ 135 | ""{""\n\ 136 | "" "name": "string" ""\n\ 137 | "" "version": "string" ""\n\ 138 | "" "payload": "object" ""\n\ 139 | "" "urn": {""\n\ 140 | "" "id": "string"""\n\ 141 | "" "namespace": "string"""\n\ 142 | "" }""\n\ 143 | ""}"" 144 | end 145 | 146 | == List Subscriptions == 147 | app1 -> eaa: ""GET /subscriptions"" 148 | activate eaa 149 | return ""HTTP 200: application/json""\n\ 150 | ""[""\n\ 151 | "" { ""\n\ 152 | "" "urn": {""\n\ 153 | "" "id": "string"""\n\ 154 | "" "namespace": "string"""\n\ 155 | "" }""\n\ 156 | "" "notifications": [ ""\n\ 157 | "" { ""\n\ 158 | "" "name": "string" ""\n\ 159 | "" "version": "string" ""\n\ 160 | "" "description": "string" ""\n\ 161 | "" } ""\n\ 162 | "" ] ""\n\ 163 | "" } ""\n\ 164 | ""]"" 165 | 166 | == Service Unsubscription == 167 | app1 -> eaa: ""DELETE /subscriptions/{urn.namespace}/{urn.id}"" 168 | activate eaa 169 | return ""HTTP 204: Unsubscribed"" 170 | 171 | == Mass Unsubscription == 172 | app1 -> eaa: ""DELETE /subscriptions"" 173 | activate eaa 174 | return ""HTTP 204: Unsubscribed"" 175 | 176 | == Service Deactivation == 177 | app2 -> eaa: ""DELETE /services"" 178 | activate eaa 179 | return ""HTTP 204: Deactivated"" 180 | 181 | @enduml 182 | 183 | -------------------------------------------------------------------------------- /schema/ela/README.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Edge Lifecycle Agent - ELA 7 | 8 | The Edge Lifecycle Agent is a service that runs on the appliance and operates 9 | as a deployment and lifecycle service for applications and VNFs (Virtual Network 10 | Functions). 11 | 12 | It also provides network interface, network zone, and application/interface policy 13 | services. 14 | 15 | ## Generate Code 16 | 17 | ``` 18 | protoc -I./pb -I../../grpc-ecosystem/grpc-gateway -I../../grpc-ecosystem/grpc-gateway/third_party/googleapis --go_out=plugins=grpc:../../.. ./pb/ela.proto 19 | ``` 20 | -------------------------------------------------------------------------------- /schema/eva/README.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Edge Virtualization Agent - EVA 7 | 8 | The Edge Virtualization Agent is a service that runs on the appliance and operates 9 | as a mediator between the infrastructure that the apps run on and the other 10 | edge components. 11 | 12 | The EVA abstracts how applications were deployed, whether with native calls to 13 | the appliance or through an external orchestrator, such as Kubernetes for 14 | containerized apps. In order to achieve this, there is also a complementary EVA 15 | service running on the Controller that the appliance EVA service can call when 16 | the appliance was configured as a node/slave of an external orchestrator. 17 | 18 | As an example, an RPC to list the running containers on the node can take two 19 | paths: 20 | 21 | 1. If the node is unorchestrated, then it can call the Docker daemon to get its 22 | response data. 23 | 2. If the node is orchestrated, then it can call the Controller EVA service 24 | which in turn will query the orchestrator for a list of containers on the 25 | requesting appliance. 26 | 27 | ## Generate Code 28 | 29 | ``` 30 | protoc -I./pb -I../../grpc-ecosystem/grpc-gateway -I../../grpc-ecosystem/grpc-gateway/third_party/googleapis --go_out=plugins=grpc:../../.. ./pb/eva.proto 31 | ``` 32 | -------------------------------------------------------------------------------- /schema/kube-ovn/README.md: -------------------------------------------------------------------------------- 1 | ```text 2 | SPDX-License-Identifier: Apache-2.0 3 | Copyright (c) 2019 Intel Corporation 4 | ``` 5 | 6 | # Kube-ovn mode 7 | 8 | Kube-ovn is an extension to the Edge Lifecycle Agent's traffic policies services. 9 | It introduces support for traffic policies similar to Kubernetes' NetworkPolicy. 10 | 11 | ## Generate Code 12 | 13 | ``` 14 | protoc -I/usr/local/include -I./pb -I../../../grpc-ecosystem/grpc-gateway -I../../../grpc-ecosystem/grpc-gateway/third_party/googleapis --go_out=plugins=grpc:../../.. ./pb/kube-ovn.proto 15 | ``` 16 | -------------------------------------------------------------------------------- /schema/pb/auth.proto: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright (c) 2019 Intel Corporation 3 | 4 | syntax = "proto3"; 5 | 6 | package openness.auth; 7 | option go_package = "github.com/smart-edge-open/schema;auth"; 8 | 9 | import "google/api/annotations.proto"; 10 | import "protoc-gen-swagger/options/annotations.proto"; 11 | 12 | option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = { 13 | info: { 14 | title: "Auth API"; 15 | version: "1.0.0"; 16 | contact: { 17 | name: "Smart Edge"; 18 | url: "github.com/smartedgemec/auth"; 19 | email: "support@smart-edge.com"; 20 | }; 21 | license: { 22 | name: "Apache 2.0 License"; 23 | url: "https://github.com/smartedgemec/schema/blob/master/LICENSE"; 24 | }; 25 | }; 26 | schemes: HTTP; 27 | consumes: "application/json"; 28 | produces: "application/json"; 29 | responses: { 30 | key: "401"; 31 | value: { 32 | description: "Unauthorized"; 33 | } 34 | } 35 | }; 36 | 37 | // The AuthService defines endpoints for requesting credentials, which may be 38 | // used for authentication against other endpoints. 39 | // 40 | // This should be used for any services that require authentication as a means 41 | // for unauthenticated parties to gain credentialed access. 42 | service AuthService { 43 | rpc RequestCredentials (Identity) returns (Credentials) { 44 | option (google.api.http) = { 45 | post: "/auth" 46 | body: "*" 47 | }; 48 | option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { 49 | description: "Request authentication credentials"; 50 | responses: { 51 | key: "201"; 52 | value: { 53 | description: "Authentication credentials created"; 54 | } 55 | } 56 | responses: { 57 | key: "404"; 58 | value: { 59 | description: "Requested identity not known/found"; 60 | } 61 | } 62 | }; 63 | } 64 | } 65 | 66 | // Identity defines a request to obtain authentication credentials. These 67 | // credentials would be used to further communicate with endpoint(s) that are 68 | // protected by a form of authentication. 69 | // 70 | // Any strings that are annotated as "PEM-encoded" implies that encoding format 71 | // is used, with any newlines indicated with `\n` characters. Most languages 72 | // provide encoders that correctly marshal this out. For more information, 73 | // see the RFC here: https://tools.ietf.org/html/rfc7468 74 | message Identity { 75 | // A PEM-encoded certificate signing request (CSR) 76 | string csr = 1; 77 | } 78 | 79 | // Credentials defines a response for a request to obtain authentication 80 | // credentials. These credentials may be used to further communicate with 81 | // endpoint(s) that are protected by a form of authentication. 82 | // 83 | // Any strings that are annotated as "PEM-encoded" implies that encoding format 84 | // is used, with any newlines indicated with `\n` characters. Most languages 85 | // provide encoders that correctly marshal this out. For more information, 86 | // see the RFC here: https://tools.ietf.org/html/rfc7468 87 | message Credentials { 88 | // An identifier for the set of credentials 89 | string id = 1; 90 | // A PEM-encoded signed certificate for the CSR 91 | string certificate = 2; 92 | // A PEM-encoded certificate chain, starting with the issuing CA and 93 | // ending with the root CA (inclusive) 94 | repeated string ca_chain = 3; 95 | // A PEM-encoded CAs to be added to the client's CA pool 96 | repeated string ca_pool = 4; 97 | } 98 | -------------------------------------------------------------------------------- /schema/pb/eva.proto: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright (c) 2019 Intel Corporation 3 | 4 | syntax = "proto3"; 5 | 6 | package openness.eva; 7 | option go_package = "github.com/smart-edge-open/eva"; 8 | 9 | import "google/protobuf/empty.proto"; 10 | 11 | // The services below are for calls from the controller to an edge node and so 12 | // do not include the /devices/{id} prefix in the URL since the edge node is 13 | // already known. 14 | 15 | // ApplicationDeploymentService manages application deployments for an appliance. 16 | service ApplicationDeploymentService { 17 | rpc DeployContainer (Application) returns (google.protobuf.Empty) {} 18 | rpc DeployVM (Application) returns (google.protobuf.Empty) {} 19 | rpc Redeploy (Application) returns (google.protobuf.Empty) {} 20 | rpc Undeploy (ApplicationID) returns (google.protobuf.Empty) {} 21 | } 22 | 23 | // ApplicationLifecycleService manages application lifecycles for an appliance. 24 | service ApplicationLifecycleService { 25 | rpc Start (LifecycleCommand) returns (google.protobuf.Empty) {} 26 | rpc Stop (LifecycleCommand) returns (google.protobuf.Empty) {} 27 | rpc Restart (LifecycleCommand) returns (google.protobuf.Empty) {} 28 | rpc GetStatus (ApplicationID) returns (LifecycleStatus) {} 29 | } 30 | 31 | // Application message - contains information about the application we're about 32 | // to deploy (or one already deployed). 33 | // 34 | // Image sources will be added over time. For example, pulling from external 35 | // Docker registries may be supported with a source such as: 36 | // 37 | // // Image will be downloaded from a Harbor registry 38 | // message DockerRegistrySource { 39 | // string repo = 1; 40 | // string tag = 2; 41 | // 42 | // // authentication 43 | // string user = 3; 44 | // string token = 4; 45 | // } 46 | // 47 | // And then adding to the source field: 48 | // 49 | // oneof source { 50 | // ... 51 | // DockerRegistrySource docker_registry = 9 + N; 52 | // } 53 | message Application { 54 | string id = 1; // unique ID generated by Controller 55 | string name = 2; // name identifying the application 56 | string version = 3; // release version of the application 57 | string vendor = 4; // owner of the application 58 | string description = 5; // helpful description of the application 59 | int32 cores = 6; // cores to start the application with (ignored if externally orchestrated) 60 | int32 memory = 7; // memory (in MB) to reserve/allow the application (ignored if externally orchestrated) 61 | repeated PortProto ports = 8; // ports and protocols that the service listens on (for port exposing) 62 | 63 | LifecycleStatus.Status status = 9; // read only 64 | 65 | // Image will be downloaded from an HTTP GET endpoint 66 | message HTTPSource { 67 | // Location of VM image or container tarball. In the case of a 68 | // container, it will be imported with: 69 | // 70 | // docker import ${app.source.uri} ${app.id}:latest 71 | string http_uri = 1; 72 | } 73 | // Source to retrieve the container or VM from. It is expected that more 74 | // sources will be added over time. 75 | oneof source { 76 | HTTPSource http_uri = 10; 77 | } 78 | 79 | // This contains a specification of the EAC features that this application wants. 80 | // (Enhanced App Configuration). This is in Json format - but is at top level 81 | // an array of string key-value pairs. Specific keys are defined by their respective features. 82 | string EACJsonBlob = 11; 83 | 84 | // CNI configuration for the application 85 | CNIConfiguration cniConf = 12; 86 | } 87 | 88 | // CNIConfiguration stores CNI configuration data. 89 | // CNI specification is available at https://github.com/containernetworking/cni/blob/master/SPEC.md 90 | message CNIConfiguration { 91 | string cniConfig = 1; // CNI configuration in form of a JSON 92 | string interfaceName = 2; // Name of the interface 93 | string path = 3; // CNI's path 94 | string args = 4; // CNI's extra args passed as a CNI_ARGS env variable 95 | } 96 | 97 | message ApplicationID { 98 | string id = 1; 99 | } 100 | 101 | message Applications { 102 | repeated Application applications = 1; 103 | } 104 | 105 | // PortProto defines a port and protocol tuple (used for apps & VNFs) 106 | message PortProto { 107 | uint32 port = 1; 108 | string protocol = 2; 109 | } 110 | 111 | message LifecycleCommand { 112 | string id = 1; 113 | enum Command { 114 | START = 0; 115 | STOP = 1; 116 | RESTART = 2; 117 | } 118 | Command cmd = 2; 119 | } 120 | 121 | message LifecycleStatus { 122 | enum Status { 123 | UNKNOWN = 0; 124 | DEPLOYING = 1; 125 | READY = 2; 126 | STARTING = 3; 127 | RUNNING = 4; 128 | STOPPING = 5; 129 | STOPPED = 6; 130 | ERROR = 7; 131 | } 132 | Status status = 1; 133 | } 134 | 135 | // The services below are for calls from an edge node to the controller. 136 | 137 | // The Controller Virtualization Agent has endpoints for requesting information 138 | // on virtualized (VM/container) application state managed by an external 139 | // orchestrator. 140 | service ControllerVirtualizationAgent { 141 | // GetContainerByIP queries an external orchestrator (e.g. Kubernetes) for 142 | // an application running (not stopped) on the Node making the request with 143 | // a given (active) Pod IP address. The identity of the Node making the 144 | // request is determined by the TLS certificate it presents at transport 145 | // authentication time. 146 | rpc GetContainerByIP (ContainerIP) returns (ContainerInfo) {} 147 | } 148 | 149 | message ContainerIP { 150 | string ip = 1; 151 | } 152 | 153 | // ContainerInfo represents the state of a running application. 154 | message ContainerInfo { 155 | string id = 1; // the deployment ID of the application 156 | } 157 | -------------------------------------------------------------------------------- /schema/pb/kube-ovn.proto: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | // Copyright (c) 2019 Intel Corporation 3 | 4 | syntax = "proto3"; 5 | 6 | package openness.kubeovn; 7 | option go_package = "openness.org/kubeovn"; 8 | 9 | import "google/protobuf/empty.proto"; 10 | 11 | // ApplicationPolicyService manages application policies. 12 | service ApplicationPolicyService { 13 | rpc Set (TrafficPolicy) returns (google.protobuf.Empty) {} 14 | } 15 | 16 | // InterfacePolicyService manages interface policies. 17 | service InterfacePolicyService { 18 | rpc Set (TrafficPolicy) returns (google.protobuf.Empty) {} 19 | } 20 | 21 | // TrafficPolicy message contains set of ingress and egress rules 22 | // applied to specific application or interface. 23 | message TrafficPolicy { 24 | string id = 1; // ID of application or interface 25 | repeated IngressRule ingress = 2; // Ingress rules 26 | repeated EgressRule egress = 3; // Egress rules 27 | } 28 | 29 | // IngressRule message contains list of CIDRs and Ports 30 | // that are allowed ingress traffic into application/interface. 31 | message IngressRule { 32 | repeated IPBlock from = 1; 33 | repeated Port ports = 2; 34 | } 35 | 36 | // EgressRule message contains list of CIDRs and Ports 37 | // that are allowed egress traffic out of application/interface. 38 | message EgressRule { 39 | repeated IPBlock to = 1; 40 | repeated Port ports = 2; 41 | } 42 | 43 | // IPBlock message contains whitelisted CIDR and list of 44 | // exceptions to that CIDR. 45 | message IPBlock { 46 | string cidr = 1; 47 | repeated string except = 2; // Array of CIDRs 48 | } 49 | 50 | // Port message contains whitelisted pair of port and protocol. 51 | message Port { 52 | enum Protocol { 53 | TCP = 0; 54 | UDP = 1; 55 | SCTP = 2; 56 | } 57 | 58 | uint32 port = 1; 59 | Protocol protocol = 2; 60 | } 61 | --------------------------------------------------------------------------------