Docker dependencies - grupogita/ONOSP4-tutorial GitHub Wiki
The architecture of the proposed environment is composed of several Docker containers that interact with each other, which are mentioned below:
-
ONOS (ONOS_IMG): SDN controller used to manage network components, which provides APIs to simplify the creation of applications for controlling a network.
-
P4RUNTIME-SH (P4RT_SH_IMG): Python shell for P4Runtime. P4Runtime is an API that allows to provide specifications to the control plane for controlling the data plane elements of a device defined by a P4 program.
-
P4C (P4C_IMG): Compiler for the P4 programming language, which supports the two language versions: P4-14 and P4-16.
-
STRATUM MININET (MN_STRATUM_IMG): Allow to emulate a Mininet network that uses
stratum_bmv2
as default switch. -
APACHE MAVEN (MAVEN_IMG): Tool for the management, comprehension and building of Java-based software projects.
-
PTF tests for ONOS fabric.p4 (PTF_IMG): Host PTF-based tests for fabric.p4. PTF is a Python-based framework for testing the data plane and fabric.p4 is a v1model-based program (compiles both BMv2 and Tofino) designed to work with Trellis, a set of SDN applications running on top of ONOS.
-
gNMI - gRPC Network Management Interface (GNMI_CLI_IMG): Provide an interface through which a network management system can perform monitoring and obtain status values, read/write the configuration of a device and receive runtime updates.
-
YANG Tools (YANG_IMG): Host the tools and libraries needed to support NETCONF and YANG for Java projects and applications. YANG is a data modeling language for network configuration and is used to express data structure in XML, JSON, Protobuf, etc.
-
SSHPass (SSHPASS_IMG): Utility designed to run SSH using the "keyboard-interactive" password authentication mode, ensuring that the password is actually issued by a keyboard-interactive user.
The following diagram displays a graphical view of the containers described above, showing the systems on which they are supported and the interaction of each of the containers with the client.