Skip to main content

Commands used in Dockefile - Part4

  Docker is an opensource tool used for virtualization and deliver software in the form of packages called Containers. It is one of the most important tools used in networking domain.  Dockerfile  is a template for building the image which contains commands needed to package the software. In this post, I am going to explain the commands ADD & COPY used in  Dockerfile .   ADD Command:   ADD command is used to copy files, directories or files from remote URLS to destination path in the image. The source paths can contain wildcards.   If the destination has relative path, it is relative to the Working directory of the image. Note that source path is always relative to the Docker build context.   ADD command will not support authentication. So, if there are any protected files to be added in  Dockerfile  building, use other tools like curl or  wget   Dockerfile  copying Single & Multiple files, directory using ADD inst...

P4 Language - High level language to program Data Plane in SDN

P4 is a programming language that gained popularity in the recent days for the use of programming of the packet in data planes in Software Defined Network. This is a high-level language and is independent of the protocol being used. Also, it can be used along with OpenFlow.
P4 stands for Programming Protocol – Protocol-independent Packet Processors. It is helpful in expressing the way to deal with packets in the data plane of the networking element like Hardware or Virtual switch, router etc. This language deals with data plane and has nothing to do with the behavior of the control plane.
Advantages of P4 Language:
P4 language has the following advantages in the networking domain:
  • It is completely opensource to program network devices
  • As the language is protocol independent, it is portable
  • Using P4, new protocol deployment is easy and takes less time
  • As P4 supports programming of the data plane, you can write the program, compile and load on hardware regarding how to deal with packets
  • Thus, P4 provides data hiding, reuse of code, easy debug, easy upgradation of software etc.
What P4 does?
P4, a protocol independent declarative language specifies the following things for each hardware device in the data plane:
  • Format of fields and their sizes in the header of the packet
  • Allowed header sequences in packets
  • It also specifies the type of lookup, dimensions of the forwarding table, actions to be applied for each packet
  • Helps in formulating action definitions for packets
  • Deals with the layout of flow tables and flow of packets
P4Runtime and its Use:
It is an API developed by P4 language consortium to control a P4 forwarding element (A hardware devices programmed using P4) to add or delete the entries in the forwarding tables. Thus, P4Runtime provides a way to control P4 forwarding plane in runtime.
Also, if new features are introduced in the data plane using P4, there is no need to change anything in P4Runtime. It avoids compiling or rebooting of control plane software providing pipe-line independence in the network.
Features of P4Runtime:
P4Runtime has the following features:
  • It allows multiple controllers to be connected to the P4 server running on the device supporting fault tolerance and redundancy
  • Support sharding of the P4 data plane and one controller for each shard
  • Easy to configure P4 data plane at runtime using P4Runtime
  • Allow streaming packets between client and server using gRPC a high-performance Remote Procedure Call framework
  • Provides facility to batch read and write at protocol level between client and server achieving high throughput
  • Has an error reporting mechanism that supports easy debugging of control plane software 
  • Supports new architectures via the usage of Any protobuf message
Important Links and Resources:
Want to learn more about the P4 Language?? Here are some links are given below:
  • To learn P4 Language, click here
  • For the P4 language tutorials and sample demos, click here
  • P4 compiler has two variants P414 and P416 variants. To see the code, click here 
  • There is a simulation environment to run P4 switch in Mininet known as Behavioral Model. To see that code, click here
  • P4 app, a Docker container that has a development environment to compile and deploy the P4 program can be seen here
  • There is one framework named Packet Testing Framework in Python that interfaces with P4Runtime to configure the switch and test send, receive & verify packets can be seen here

Comments

Popular posts from this blog

Commands used in Dockefile - Part4

  Docker is an opensource tool used for virtualization and deliver software in the form of packages called Containers. It is one of the most important tools used in networking domain.  Dockerfile  is a template for building the image which contains commands needed to package the software. In this post, I am going to explain the commands ADD & COPY used in  Dockerfile .   ADD Command:   ADD command is used to copy files, directories or files from remote URLS to destination path in the image. The source paths can contain wildcards.   If the destination has relative path, it is relative to the Working directory of the image. Note that source path is always relative to the Docker build context.   ADD command will not support authentication. So, if there are any protected files to be added in  Dockerfile  building, use other tools like curl or  wget   Dockerfile  copying Single & Multiple files, directory using ADD inst...

Commands used in Dockerfile - Part3

  Docker is an opensource tool used for virtualization and deliver software in the form of packages called Containers. It is one of the most important tools used in networking domain.  Dockerfile  is a template for building the image which contains commands needed to package the software. In this post, I am going to explain the commands WORKDIR & HEALTHCHECK used in  Dockerfile .   WORKDIR Command:   WORKDIR command is used to set the directory of the image on which the commands like RUN, COPY, ADD, ENTRYPOINT, CMD operates.   The command usage is WORKDIR < Path_To_Dir >. If the directory not exists, it will be created. If the relative path is given to WORKDIR, that path will be relative to the previous WORKDIR command’s path.    In Ubuntu, by default the WORKDIR will be  / . Please find the below sample  Dockerfile  to get clear picture of WORKDIR command:   FROM  ubuntu: 16.04   WORKDIR  /root ...

Vyos - An Open Source Network Operating System

What is  a  Network Operating System?   Networking Operating System (NOS) is an O perating system  that  has the capability to  support workstations, database sharing, application sharing, file ,  and printer access sharing among multiple computers in a network. In general ,  NOS is a specialized operating system used for devices like router, switch or firewall. Features of Networking Operating System:   NOS has the following features: Basic features like protocol support, processor support, hardware detection and multiprocessing support for applications Authentication, access control, authorization ,  and restriction facilities are supported to provide security Provides file service, web service, printing and replication Has Naming and Directory Management services Has  the provision  for user management and remote access & system management Also has internetworking features like routing and ...