Skip to content
Snippets Groups Projects
Commit 1855d08d authored by yangalicace1's avatar yangalicace1
Browse files

Deployed bfd8a659 to develop in public with MkDocs 1.6.1 and mike 2.1.3

parent a547032b
No related branches found
No related tags found
No related merge requests found
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<div data-md-component="skip"> <div data-md-component="skip">
<a href="#what-is-opencapif" class="md-skip"> <a href="#try-teraflowsdn-release-30" class="md-skip">
Skip to content Skip to content
</a> </a>
...@@ -563,83 +563,86 @@ ...@@ -563,83 +563,86 @@
<p><img src="images/logos/OpenCAPIF.png" alt="drawing" width="200"/></p> <p><img src="images/logos/OpenCAPIF.png" alt="drawing" width="200"/></p>
<h1 id="what-is-opencapif">What is OpenCAPIF?</h1> <p>Welcome to the ETSI TeraFlowSDN (TFS) Controller wiki!</p>
<p>OpenCAPIF is an open source implementation of the CAPIF Core Function APIs plus the logic and additional services required to fulfill the 3GPP requirements and deliver the expected functionality.</p> <p>This wiki provides a walkthrough on how to prepare your environment for executing and contributing to the <a href="https://tfs.etsi.org/">ETSI TeraFlowSDN SDG</a>.
<p>CAPIF is the “Common API Framework” defined by 3GPP to manage the APIs exposed by 3GPP networks in their northbound interfaces.</p> Besides, it describes how to run some example experiments.</p>
<p>3GPP specifications for CAPIF defines three types of entities:</p> <h1 id="try-teraflowsdn-release-30">Try TeraFlowSDN Release 3.0</h1>
<p>The new release launched on April 24th, 2024 incorporates a number of new features, improvements, and bug resolutions. Try it by following the guides below, and feel free to give us your feedback.
See the <a href="https://labs.etsi.org/rep/tfs/controller/-/releases/v3.0.0">Release Notes</a>.</p>
<h1 id="requisites">Requisites</h1>
<p>The guides and walkthroughs below make some reasonable assumptions to simplify the deployment of the TFS controller, the execution of experiments and tests, and the development of new contributions.
In particular, we assume:</p>
<ul> <ul>
<li>API Providers, which are the entities exposing APIs (e.g., NEF)</li> <li>A physical server or virtual machine for running the TFS controller with the following minimum specifications (check section <a href="./1.-Deployment-Guide/1.1.-Configure-your-Machine">Configure your Machine</a> for additional details):</li>
<li>API Invokers, which are the entities that consume APIs (e.g., Applications), and</li> <li>4 cores / vCPUs</li>
<li>the CAPIF Core Function, which manages the relationships between the other two.</li> <li>8 GB of RAM (10 GB of RAM if you want to develop)</li>
<li>60 GB of disk (100 GB of disk if you want to develop)</li>
<li>1 NIC card</li>
<li><a href="https://code.visualstudio.com/">VSCode</a> with the <a href="https://code.visualstudio.com/docs/remote/ssh">Remote SSH</a> extension</li>
<li>Working machine software:</li>
<li><a href="https://releases.ubuntu.com/22.04/">Ubuntu Server 22.04.4 LTS</a> or <a href="https://releases.ubuntu.com/20.04/">Ubuntu Server 20.04.6 LTS</a></li>
<li><a href="https://microk8s.io/">MicroK8s v1.24.17</a></li>
</ul> </ul>
<p><img alt="CAPIF Core Function" src="images/architecture/CAPIF_Core_Function.png" title="CAPIF Core Function" /></p> <p>Use the Wiki menu in the right side of this page to navigate through the various contents of this wiki.</p>
<p>The CAPIF Core Function is the cornerstone of the Common API Framework and provides the following capabilities:</p> <h1 id="guides-and-walkthroughs">Guides and Walkthroughs</h1>
<p>The following guides and walkthroughs are provided:</p>
<ul> <ul>
<li>Authenticating the API Invoker based on its identity and other information;</li> <li><a href="/1.-Deployment-Guide">1. Deployment Guide</a></li>
<li>Supporting mutual authentication with the API Invoker;</li> <li><a href="/2.-Development-Guide">2. Development Guide</a></li>
<li>Providing authorization for the API Invoker prior to accessing the exposed APIs;</li> <li><a href="/3.-Run-Experiments">3. Run Experiments</a></li>
<li>Publishing, storing, and supporting the discovery of service APIs information;</li> <li><a href="/4.-Features-and-Bugs">4. Features and Bugs</a></li>
<li>Controlling the service API access based on PLMN operator configured policies;</li> <li><a href="/5.-Supported-SBIs-and-Network-Elements">5. Supported SBIs and Network Elements</a></li>
<li>Storing the logs for the service API invocations and providing the service API invocation logs to authorized entities;</li> <li><a href="/6.-Supported-NBIs">6. Supported NBIs</a></li>
<li>Charging based on the logs of the service API invocations;</li> <li><a href="/7.-Supported-Service-Handlers">7. Supported Service Handlers</a></li>
<li>Monitoring the service API invocations;</li> <li><a href="/8.-Troubleshooting">8. Troubleshooting</a></li>
<li>Onboarding a new API Invoker and offboarding an API Invoker;</li>
<li>Storing policy configurations related to CAPIF and service APIs;</li>
<li>Support for accessing the logs for auditing (e.g., detecting abuse); and</li>
<li>Support for publishing and discovery of service APIs information among CAPIF Core Function (CAPIF interconnection).</li>
</ul> </ul>
<p>The following diagram shows how API Invokers and API Providers interact with the CAPIF Core Function to Register in CAPIF, Publish APIs, Discover APIs and Consume APIs. It is important to highlight that the CAPIF Core Function is not a classical API Gateway. The API consumption takes place directly between the API Invoker and the API Provider. Therefore, CAPIF does not impact API performance in API consumption between API Invokers and API Providers.</p> <h1 id="tutorials-and-tfs-virtual-machine">Tutorials and TFS Virtual Machine</h1>
<p><img alt="Flow" src="images/architecture/msg_flow.png" title="Flow" /></p> <p>This section provides access to the links and all the materials prepared for the tutorials and hackfests involving ETSI TeraFlowSDN.</p>
<p>If you want to know more about OpenCAPIF check <a href="https://ocf.etsi.org/news/20240110_the_story_behind_opencapif/">The story behind openCAPIF</a></p>
<h1 id="repository-structure">Repository structure</h1>
<p>You can check the code at <a href="https://labs.etsi.org/rep/ocf/capif" title="OpenCAPIF Repository">OpenCAPIF Repository</a></p>
<pre><code>CAPIF_API_Services
└───helm
└───monitoring
└───services
└───tests
└───tools
└───robot
└───open_api_script
</code></pre>
<ul> <ul>
<li><strong>helm</strong>: This folder contains helm files to deploy capif under k8s environment.</li> <li><a href="https://labs.etsi.org/rep/groups/tfs/-/wikis/TFS-HACKFEST-3">TFS Hackfest #3 (Castelldefels, 16-17 October 2023)</a></li>
<li><strong>monitoring</strong>: This folder contains grafana helm files to deploy capif under k8s environment.</li> <li>
<li><strong>services</strong>: Services developed following CAPIF API specifications. Also, other complementary services (e.g., NGINX and JWTauth services for the authentication of API consuming entities).</li> <p>The link includes explanatory material on P4 for TeraFlowSDN, the set of guided walkthrough, and the details on the interactive sessions the participants addressed (and recordings), as well as a TFS Virtual Machine (Release 2.1).</p>
<li><strong>tools</strong>: Auxiliary tools. Robot Framework related code and OpenAPI scripts.</li> </li>
<li><strong>test</strong>: Tests developed using Robot Framework.</li> <li>
<p><a href="https://labs.etsi.org/rep/groups/tfs/-/wikis/TFS-HACKFEST-2">TFS Hackfest #2 (Madrid, 20-21 June 2023)</a></p>
</li>
<li>
<p>The link includes explanatory material on gNMI and ContainerLab for TeraFlowSDN, the set of challenges the participants addressed (and recordings), as well as a TFS Virtual Machine (Pre-Release 2.1).</p>
</li>
<li>
<p><a href="https://labs.etsi.org/rep/groups/tfs/-/wikis/OFC-SC472-2023">OFC SC472 (San Diego, 6 March 2023)</a></p>
</li>
<li>
<p>The link includes a tutorial-style slide deck, as well as a TFS Virtual Machine (Release 2).</p>
</li>
<li>
<p><a href="https://labs.etsi.org/rep/groups/tfs/-/wikis/TFS-HACKFEST-1">TFS Hackfest #1 (Amsterdam, 20 October 2022)</a></p>
</li>
<li>The link includes a tutorial-style slide deck (and recordings), as well as a TFS Virtual Machine (Pre-Release 2).</li>
</ul> </ul>
<h1 id="capif_api_services">CAPIF_API_Services</h1> <h1 id="versions">Versions</h1>
<p>This repository has the python-flask Mockup servers created with openapi-generator related with CAPIF APIS defined here: <p>New versions of TeraFlowSDN are periodically released.
<a href="https://forge.3gpp.org/rep/all/5G_APIs" title="Open API Descriptions of 3GPP 5G APIs">Open API Descriptions of 3GPP 5G APIs</a></p> Each release is properly tagged and a branch is kept for its future bug fixing, if needed.</p>
<h1 id="how-to-test-capif-apis">How to test CAPIF APIs</h1> <ul>
<p>The above APIs can be tested either with POSTMAN tool or running the developed tests with Robot Framework.</p> <li>The branch <em>master</em>, points always to the latest stable version of the TeraFlowSDN controller.</li>
<h1 id="test-plan-documentation">Test Plan Documentation</h1> <li>The branches <em>release/X.Y.Z</em>, point to the code for the different release versions indicated in branch name.</li>
<p>Complete documentation of tests is available here: <a href="testing/testplan/" title="Test Plan Directory">Test Plan Directory</a></p> <li>Code in these branches can be considered stable, and no new features are planned.</li>
<h1 id="robot-framework">Robot Framework</h1> <li>In case of bugs, point releases increasing revision number (Z) might be created.</li>
<p>In order to ensure that modifications over CAPIF services still fulfills the required functionality, the Robot Framework Test Suite must be successfully run.</p> <li>The main development branch is named as <em>develop</em>.</li>
<p>The Robot Test Suite covers the requirements described in the test plan at <a href="testing/testplan/" title="Test Plan Directory">Test Plan Directory</a> folder.</p> <li><strong>Use with care! Might not be stable.</strong></li>
<p>Please check the <a href="testing/robotframework/" title="Testing with Robot Framework">Testing with Robot Framework</a> Section</p> <li>The latest developments and contributions are added to this branch for testing and validation before reaching a release. </li>
<h1 id="using-postman">Using PostMan</h1> </ul>
<p>You can also test the CAPIF flow using the Postman tool. To do this, we have created a collection with some examples of CAPIF requests with everything necessary to carry them out.</p> <p>To choose the appropriate branch, follow the steps described in <a href="/1.-Deployment-Guide/1.3.-Deploy-TeraFlowSDN#checkout-the-appropriate-git-branch">1.3. Deploy TeraFlowSDN &gt; Checkout the Appropriate Git Branch</a></p>
<p>For more information on how to test the APIs with POSTMAN, go to this <a href="testing/postman/" title="POSTMAN Section">POSTMAN Section</a>.</p> <h1 id="events">Events</h1>
<h1 id="important-urls">Important urls:</h1> <p>Find here after the list of past and future TFS Events:</p>
<h1 id="mongo-capifs-db-dashboard">Mongo CAPIF's DB Dashboard</h1> <ul>
<pre><code>http://localhost:8082/ (if accessed from localhost) <li><a href="https://labs.etsi.org/rep/groups/tfs/-/wikis/TFS-Events">ETSI TeraFlowSDN Events</a> </li>
</ul>
or <h1 id="contact">Contact</h1>
<p>If your environment does not fit with the proposed assumptions and you experience issues
http://&lt;Mongo CAPIF Express Host IP&gt;:8082/ (if accessed from another host) preparing it to work with the ETSI TeraFlowSDN controller, contact the ETSI TeraFlowSDN
</code></pre> SDG team through
<h1 id="mongo-registers-db-dashboard">Mongo Register's DB Dashboard</h1> <a href="https://join.slack.com/t/teraflowsdn/shared_invite/zt-18gc5jvkh-1_DEZHFhxeuOqzJZPq~U~A">Slack</a></p>
<pre><code>http://localhost:8083/ (if accessed from localhost)
or
http://&lt;Mongo Register Express Host IP&gt;:8083/ (if accessed from another host)
</code></pre>
<h1 id="faq-documentation">FAQ Documentation</h1>
<p>Frequently asked questions can be found here: <a href="FAQ/" title="FAQ Section">FAQ Section</a></p>
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment