{"id":25495965,"url":"https://github.com/opennetworkinglab/sdfabric-tutorial","last_synced_at":"2025-11-09T21:30:22.044Z","repository":{"id":39092787,"uuid":"471166690","full_name":"opennetworkinglab/sdfabric-tutorial","owner":"opennetworkinglab","description":null,"archived":false,"fork":false,"pushed_at":"2022-06-06T17:03:05.000Z","size":1978,"stargazers_count":9,"open_issues_count":5,"forks_count":3,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-03-26T18:02:32.553Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opennetworkinglab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/Apache-2.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-03-17T22:51:58.000Z","updated_at":"2023-12-04T17:25:39.000Z","dependencies_parsed_at":"2022-09-16T22:24:33.485Z","dependency_job_id":null,"html_url":"https://github.com/opennetworkinglab/sdfabric-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennetworkinglab%2Fsdfabric-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennetworkinglab%2Fsdfabric-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennetworkinglab%2Fsdfabric-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opennetworkinglab%2Fsdfabric-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opennetworkinglab","download_url":"https://codeload.github.com/opennetworkinglab/sdfabric-tutorial/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239576797,"owners_count":19662113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-19T00:52:49.532Z","updated_at":"2025-11-09T21:30:21.992Z","avatar_url":"https://github.com/opennetworkinglab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: 2022-present Intel Corporation\nSPDX-License-Identifier: Apache-2.0\n--\u003e\n\n# SD-Fabric Tutorial\n\nWelcome to the SD-Fabric tutorial!\n\nSD-Fabric is an open source programmable network fabric tailored for\n5G-connected edge clouds, with a focus on enterprise and Industry 4.0 use cases.\n\nThis repository contains instructions to learn how to use and develop SD-Fabric.\nBefore starting, we suggest familiarizing with the SD-Fabric architecture and\nfeatures using the official SD-Fabric documentation website at\n\u003chttps://docs.sd-fabric.org\u003e.\n\nIn this tutorial, we provide scripts to easily bring up an SD-Fabric environment\nin a laptop (or server), including ONOS, emulated Stratum switches, and other\nSD-Fabric components. We also provide hands-on exercises that show how to set up\nSD-Fabric, use advanced features like the 5G P4-UPF, In-band Network Telemetry,\nand more.\n\n## System requirements\n\nAll exercises can be executed by installing the following dependencies:\n\n* Docker v1.13.0+ (with docker-compose)\n* make\n* Python 3\n* Bash-like Unix shell\n* Wireshark (optional)\n\nWe recommend running the exercises on a machine with at least 4 GB of RAM and 4\ncore CPU. For a smooth experience, we recommend running on a system that has at\nleast the double of resources.\n\n**Note for macOS users**: if you are using Docker Desktop for Mac, make sure to\nadjust the CPU and memory assignments for your Docker VM.\nWe don't support M1 Mac yet since there is a known connectivity issue.\n\n**Note for Windows users**: all scripts have been tested on macOS and Ubuntu.\nAlthough we think they should work on Windows, we have not tested it.\n\n## Get this repo and download dependencies\n\nTo work on the exercises you will need to clone this repo and download dependencies:\n\n    git clone https://github.com/opennetworkinglab/sdfabric-tutorial\n    cd sdfabric-tutorial\n    make deps\n\nThe last command will download all necessary Docker images allowing you to work\noff-line. If you are doing this tutorial at an event, we recommend running this\nstep ahead of the tutorial, with a reliable Internet connection.\n\n## Repo structure\n\nThis repo is structured as follows:\n\n - `config/` Configuration files for various sub-components\n - `mininet/` Mininet script to emulate a 2x2 leaf-spine fabric topology of\n   `stratum_bmv2` devices\n - `solution/` Solutions for the exercises\n - `util/` Utility scripts\n\n## Tutorial commands\n\nTo facilitate working on the exercises, we provide a set of make-based commands\nto control the different aspects of the tutorial. Commands will be introduced in\nthe exercises, here's a quick reference:\n\n| Make command     | Description                                             |\n|------------------|---------------------------------------------------------|\n| `make deps`      | Pull and build all required dependencies                |\n| `make start`     | Start Mininet and ONOS containers                       |\n| `make start-upf` | Start PFCP Agent and other UPF containers               |\n| `make stop`      | Stop all containers                                     |\n| `make restart`   | Restart containers clearing any previous state          |\n| `make reset`     | Reset the tutorial environment                          |\n| `make onos-cli`  | Access the ONOS CLI (password: `rocks`, Ctrl-D to exit) |\n| `make onos-log`  | Show the ONOS log                                       |\n| `make mn-cli`    | Access the Mininet CLI (Ctrl-D to exit)                 |\n| `make mn-log`    | Show the Mininet log (i.e., the CLI output)             |\n| `make mn-pcap`   | Dump packet on a particular Mininet host                |\n| `make netcfg`    | Push netcfg.json file (network config) to ONOS          |\n\n## Exercises\n\nClick on the exercise name to see the instructions:\n\n 1. [Basic configuration](./EXERCISE-1.md)\n 2. [P4-UPF](./EXERCISE-2.md)\n\nWe plan to add more exercises in the future. Make sure to watch this repo to be\ninformed of any update. Planned additions:\n\n * In-band Network Telemetry (INT)\n * Extending SD-Fabric\n * Slicing \u0026 QoS\n * Advanced Connectivity\n \n## Solutions\n\nYou can find solutions for each exercise in the [solution](solution) directory.\nFeel free to compare your solution to the reference one whenever you feel stuck.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopennetworkinglab%2Fsdfabric-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopennetworkinglab%2Fsdfabric-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopennetworkinglab%2Fsdfabric-tutorial/lists"}