1 .. _p4plugin-user-guide:
9 P4 is a high-level language for expressing how packets are processed by the pipeline
10 of a network forwarding element such as a switch, network processing units, software
11 switches (bmv2), etc. P4 itself is protocol independent but allows for the expression
12 of forwarding plane protocols. It is based upon an abstract forwarding model called PISA
13 (Protocol Independent Switch Architecture). In the Oxygen release, the P4 Plugin project
14 is aimed to provide basic functions for P4 targets, such as channel and device management,
15 table population, packet-in and packet-out process, etc.
18 P4 Plugin User-Facing Features
19 ------------------------------
20 - **odl-p4plugin-all**
22 - This feature contains all other features/bundles of P4 Plugin project. If you
23 install it, it provides all functions that the P4 Plugin project can support.
25 - **odl-p4plugin-runtime**
27 - This feature provides a function which implements a gRPC client that provides RPCs
28 for users, such as setting and retrieving forwarding pipeline config dynamically,
29 complete table entry population entry and packet out procedures, etc.
31 - **odl-p4plugin-netconf-adapter**
33 - This feature mainly provides function about collecting device resource.
39 Preparing for Installation
40 ~~~~~~~~~~~~~~~~~~~~~~~~~~
42 1. Forwarding devices must support NETCONF, so that OpenDaylight can connect to them
43 and collect resoures via NETCONF.
45 2. Forwarding devices must support gRpc and run P4 program, so that OpenDaylight
46 can set the forwarding pipeline config, complete table entry population and packet
47 in/out procedure, etc.
54 Run OpenDaylight and install P4 Plugin Service *odl-p4plugin-all* as shown below:
56 feature:install odl-p4plugin-all
58 For a more detailed overview of the P4 Plugin, see the :ref:`p4plugin-dev-guide`.