Adjust formatting for branch-cutting instructions
[docs.git] / docs / user-guide / p4plugin-user-guide.rst
1 .. _p4plugin-user-guide:
2
3 P4 Plugin User Guide
4 ====================
5
6 Overview
7 --------
8
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.
16
17
18 P4 Plugin User-Facing Features
19 ------------------------------
20 -  **odl-p4plugin-all**
21
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.
24
25 -  **odl-p4plugin-runtime**
26
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.
30
31 -  **odl-p4plugin-netconf-adapter**
32
33    -  This feature mainly provides function about collecting device resource.
34
35
36 How To Start
37 -------------
38
39 Preparing for Installation
40 ~~~~~~~~~~~~~~~~~~~~~~~~~~
41
42 1. Forwarding devices must support NETCONF, so that OpenDaylight can connect to them
43    and collect resoures via NETCONF.
44
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.
48
49
50
51 Installation Feature
52 ~~~~~~~~~~~~~~~~~~~~
53
54 Run OpenDaylight and install P4 Plugin Service *odl-p4plugin-all* as shown below:
55
56    feature:install odl-p4plugin-all
57
58 For a more detailed overview of the P4 Plugin, see the :ref:`p4plugin-dev-guide`.