Skip to content
index.html 30.3 KiB
Newer Older

<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
        <meta name="description" content="ETSI SDG TFS Documentation page">
      
      
        <meta name="author" content="TeraflowSDN by ETSI">
      
      
        <link rel="canonical" href="https://tfs.etsi.org/develop/">
      
      
      
      
      <link rel="icon" href="images/favicon.png">
      <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.40">
        <title>ETSI SDG TFS Documentation</title>
      <link rel="stylesheet" href="assets/stylesheets/main.8c3ca2c6.min.css">
      
        
        <link rel="stylesheet" href="assets/stylesheets/palette.06af60db.min.css">
      
      


    
    
      
    
    
      
        
        
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
        <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
      
    
    
      <link rel="stylesheet" href="stylesheets/extra.css">
    
    <script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
    
      

    
    
    
  </head>
  
  
    
    
    
    
    
    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="0D47A1" data-md-color-accent="1565C0">
  
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#try-teraflowsdn-release-30" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
      <div data-md-color-scheme="default" data-md-component="outdated" hidden>
        
      </div>
    
    
      

<header class="md-header" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="Header">
    <a href="." title="ETSI SDG TFS Documentation" class="md-header__button md-logo" aria-label="ETSI SDG TFS Documentation" data-md-component="logo">
      
  <img src="images/logos/TeraFlow SDN Logo Screen_B_W NEG.png" alt="logo">

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            ETSI SDG TFS Documentation
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
            
          </span>
        </div>
      </div>
    </div>
    
      
    
    
    
    
      <label class="md-header__button md-icon" for="__search">
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
      </label>
      <div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
      <label class="md-search__icon md-icon" for="__search">
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
      </label>
      <nav class="md-search__options" aria-label="Search">
        
        <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
          
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
        </button>
      </nav>
      
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
        <div class="md-search-result" data-md-component="search-result">
          <div class="md-search-result__meta">
            Initializing search
          </div>
          <ol class="md-search-result__list" role="presentation"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
    
    
      <div class="md-header__source">
        <a href="https://labs.etsi.org/rep/tfs" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81s-5.7.083-8.4 1.11c-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.1 18.1 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82"/></svg>
  </div>
  <div class="md-source__repository">
    TFS GitLab
  </div>
</a>
      </div>
    
  </nav>
  
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
          
            
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
  <div class="md-grid">
    <ul class="md-tabs__list">
      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/deployment_guide/" class="md-tabs__link">
        
  
    
  
  1. Deployment Guide

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/configure_your_machine/configure_your_machine/" class="md-tabs__link">
        
  
    
  
  1.1. Configure your Machine

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/configure_your_machine/physical_server/" class="md-tabs__link">
        
  
    
  
  1.1.1. Physical Server

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/configure_your_machine/oracle_virtual_box/" class="md-tabs__link">
        
  
    
  
  1.1.2. Oracle Virtual Box

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/configure_your_machine/vm_ware_fusion/" class="md-tabs__link">
        
  
    
  
  1.1.3. VMWare Fusion

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/configure_your_machine/openstack/" class="md-tabs__link">
        
  
    
  
  1.1.4. OpenStack

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/configure_your_machine/vagrant_box/" class="md-tabs__link">
        
  
    
  
  1.1.5. Vagrant Box

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/install_micro_k8s/install_micro_k8s/" class="md-tabs__link">
        
  
    
  
  1.2. Install MicroK8s

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/deploy_TeraFlowSDN/deploy_TeraFlowSDN/" class="md-tabs__link">
        
  
    
  
  1.3. Deploy TeraFlowSDN

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/webUI_and_grafana_dashboards/webUI_and_grafana_dashboards/" class="md-tabs__link">
        
  
    
  
  1.4. WebUI and Grafana Dashboards

      </a>
    </li>
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="deployment_guide/show_deployment_and_logs/show_deployment_and_logs/" class="md-tabs__link">
        
  
    
  
  1.5. Show deployments and Logs

      </a>
    </li>
  

      
        
  
  
  
    
    
      <li class="md-tabs__item">
        <a href="development_guide/configure_environment/configure_environment/" class="md-tabs__link">
          
  
  2. Development Guide

        </a>
      </li>
    
  

      
        
  
  
  
    
    
      <li class="md-tabs__item">
        <a href="testing/testplan/" class="md-tabs__link">
          
  
  Testing

        </a>
      </li>
    
  

      
        
  
  
  
    <li class="md-tabs__item">
      <a href="FAQ/" class="md-tabs__link">
        
  
    
  
  FAQ

      </a>
    </li>
  

      
    </ul>
  </div>
</nav>
          
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    


  

<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href="." title="ETSI SDG TFS Documentation" class="md-nav__button md-logo" aria-label="ETSI SDG TFS Documentation" data-md-component="logo">
      
  <img src="images/logos/TeraFlow SDN Logo Screen_B_W NEG.png" alt="logo">

    </a>
    ETSI SDG TFS Documentation
  </label>
  
    <div class="md-nav__source">
      <a href="https://labs.etsi.org/rep/tfs" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81s-5.7.083-8.4 1.11c-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.1 18.1 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82"/></svg>
  </div>
  <div class="md-source__repository">
    TFS GitLab
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href="deployment_guide/deployment_guide/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    <li class="md-nav__item">
      <a href="deployment_guide/configure_your_machine/configure_your_machine/" class="md-nav__link">
      <a href="deployment_guide/configure_your_machine/physical_server/" class="md-nav__link">
      <a href="deployment_guide/configure_your_machine/oracle_virtual_box/" class="md-nav__link">
      <a href="deployment_guide/configure_your_machine/vm_ware_fusion/" class="md-nav__link">
      <a href="deployment_guide/configure_your_machine/openstack/" class="md-nav__link">
      <a href="deployment_guide/configure_your_machine/vagrant_box/" class="md-nav__link">
      <a href="deployment_guide/install_micro_k8s/install_micro_k8s/" class="md-nav__link">
      <a href="deployment_guide/deploy_TeraFlowSDN/deploy_TeraFlowSDN/" class="md-nav__link">
      <a href="deployment_guide/webUI_and_grafana_dashboards/webUI_and_grafana_dashboards/" class="md-nav__link">
    1.4. WebUI and Grafana Dashboards
      <a href="deployment_guide/show_deployment_and_logs/show_deployment_and_logs/" class="md-nav__link">
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
          
          <label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
            
            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_12">
            <span class="md-nav__icon md-icon"></span>
            2. Development Guide
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
    <li class="md-nav__item">
      <a href="development_guide/configure_environment/configure_environment/" class="md-nav__link">
      <a href="development_guide/configure_environment/python/" class="md-nav__link">
      <a href="development_guide/configure_environment/java_quarkus/" class="md-nav__link">
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_13" >
          <label class="md-nav__link" for="__nav_13" id="__nav_13_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    Testing
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_13">
            <span class="md-nav__icon md-icon"></span>
            Testing
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="testing/testplan/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Test Plan
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="testing/robotframework/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Robot Framework
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="testing/postman/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Postman
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href="FAQ/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    FAQ
  </span>
  

      </a>
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
          
          
            <div class="md-content" data-md-component="content">
              <article class="md-content__inner md-typeset">
                
                  


<p><img src="images/logos/TeraFlowSDN_tr.png" alt="drawing" width="200"/></p>
<p>Welcome to the ETSI TeraFlowSDN (TFS) Controller wiki!</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>.
Besides, it describes how to run some example experiments.</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>
<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>4 cores / vCPUs</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>
<p>Use the Wiki menu in the right side of this page to navigate through the various contents of this wiki.</p>
<h1 id="guides-and-walkthroughs">Guides and Walkthroughs</h1>
<p>The following guides and walkthroughs are provided:</p>
<li><a href="/1.-Deployment-Guide">1. Deployment Guide</a></li>
<li><a href="/2.-Development-Guide">2. Development Guide</a></li>
<li><a href="/3.-Run-Experiments">3. Run Experiments</a></li>
<li><a href="/4.-Features-and-Bugs">4. Features and Bugs</a></li>
<li><a href="/5.-Supported-SBIs-and-Network-Elements">5. Supported SBIs and Network Elements</a></li>
<li><a href="/6.-Supported-NBIs">6. Supported NBIs</a></li>
<li><a href="/7.-Supported-Service-Handlers">7. Supported Service Handlers</a></li>
<li><a href="/8.-Troubleshooting">8. Troubleshooting</a></li>
<h1 id="tutorials-and-tfs-virtual-machine">Tutorials and TFS Virtual Machine</h1>
<p>This section provides access to the links and all the materials prepared for the tutorials and hackfests involving ETSI TeraFlowSDN.</p>
<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>
<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>
<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>