Initial Patch for PCMM (PacketCable Documentation) 97/23097/1
authorMathieu Lemay <mlemay@inocybe.com>
Thu, 11 Jun 2015 12:00:52 +0000 (08:00 -0400)
committerColin Dixon <colin@colindixon.com>
Mon, 22 Jun 2015 14:13:59 +0000 (14:13 +0000)
This patch provides initial documentation based on the available
wiki documentation. However it will have to be reviewed (and wiki too)
with the latest information from the current codebase. This patch will need
updates before final merge.

Patch Set 2: Added images from the wiki. The images likely should be renamed.

Change-Id: If9c0cbd3f2366e4dc818d9eb1bebd4265229d018
Signed-off-by: Mathieu Lemay <mlemay@inocybe.com>
(cherry picked from commit e008d8efef888a7c137c517ceb17d72b16379e0b)

15 files changed:
manuals/developer-guide/src/main/asciidoc/bk-developers-guide.adoc
manuals/developer-guide/src/main/asciidoc/packetcable/packetcable-dev.adoc [new file with mode: 0644]
manuals/developer-guide/src/main/resources/images/Odp_diagram_helium_v6.jpg [new file with mode: 0644]
manuals/developer-guide/src/main/resources/images/Screenshot6.png [new file with mode: 0644]
manuals/developer-guide/src/main/resources/images/Screenshot8.png [new file with mode: 0644]
manuals/user-guide/src/main/asciidoc/bk-user-guide.adoc
manuals/user-guide/src/main/asciidoc/packetcable/packetcable-user.adoc [new file with mode: 0644]
manuals/user-guide/src/main/resources/images/ODL-Helium-dependency.png [new file with mode: 0644]
manuals/user-guide/src/main/resources/images/Odp_diagram_helium_v6.jpg [new file with mode: 0644]
manuals/user-guide/src/main/resources/images/Screenshot1.png [new file with mode: 0644]
manuals/user-guide/src/main/resources/images/Screenshot2.png [new file with mode: 0644]
manuals/user-guide/src/main/resources/images/Screenshot3.png [new file with mode: 0644]
manuals/user-guide/src/main/resources/images/Screenshot4.png [new file with mode: 0644]
manuals/user-guide/src/main/resources/images/Screenshot5.png [new file with mode: 0644]
manuals/user-guide/src/main/resources/images/Screenshot6.png [new file with mode: 0644]

index 08e27952c8d332f9272c0903867b8136fd01c24d..526914fadbe38726b5a73e243cae3358c57265b6 100644 (file)
@@ -80,6 +80,8 @@ include::opflex/agent-ovs-dev.adoc[]
 
 include::ovsdb/ovsdb-developer.adoc[]
 
+include::packetcable/packetcable-dev.adoc[Packet Cable PCMM Southbound Plugin]
+
 include::reservation/reservation-dev.adoc[]
 
 include::sfc/sfc.adoc[]
diff --git a/manuals/developer-guide/src/main/asciidoc/packetcable/packetcable-dev.adoc b/manuals/developer-guide/src/main/asciidoc/packetcable/packetcable-dev.adoc
new file mode 100644 (file)
index 0000000..c5328df
--- /dev/null
@@ -0,0 +1,346 @@
+[[developer-and-testing-preliminary]]
+= PCMM Developer and Testing (*Preliminary*)
+
+[[specification]]
+== Specification
+
+http://www.cablelabs.com/wp-content/uploads/specdocs/PKT-SP-MM-I05-091029.pdf[PacketCable™
+Specification Multimedia Specification PKT-SP-MM-I05-091029]
+
+[[system-overview]]
+== System Overview
+
+These components introduce a DOCSIS QoS Service Flow management using
+the PCMM protocol. The driver component is responsible for the
+PCMM/COPS/PDP functionality required to service requests from
+PacketCable Provider and FlowManager. Requests are transposed into PCMM
+Gate Control messages and transmitted via COPS to the CMTS. This plugin
+adheres to the PCMM/COPS/PDP functionality defined in the CableLabs
+specification. PacketCable solution is an MDSAL compliant component.
+
+image:Screenshot6.png[Screenshot6.png,title="Screenshot6.png"]
+
+image:Odp_diagram_helium_v6.jpg[Odp_diagram_helium_v6.jpg,title="Odp_diagram_helium_v6.jpg"]
+
+[[packetcable-components]]
+== Packetcable Components
+
+packetcable is comprised of three OpendayLight bundles
+
+[cols=",",options="header",]
+|=======================================================================
+|Bundle |Description
+|packetcable-model |Contains the YANG information model for flows and
+nodes
+
+|packetcable-provider |Provider hosts the model processing, RESTCONF,
+API implementation, and brokers requests to consumer
+
+|packetcable-consumer |Consumer hosts packet codec and sends requests to
+driver
+
+|packetcable-driver |The codec for transforming the model into the
+appropriate PCMM Gate message for flows and CMTS connections.
+|=======================================================================
+
+See
+https://git.opendaylight.org/gerrit/gitweb?p=packetcable.git;a=tree;f=packetcable-model/src/main/yang[YANG
+Model]
+
+[[tell-a-bundle-to-log-debug]]
+==== Tell a Bundle to Log Debug
+
+`   log:set  org.opendaylight.packetcable.packetcable-provider`
+
+[[tools-for-testing]]
+== Tools for Testing
+
+[[custom-testsuite]]
+=== Custom Testsuite
+
+Most of the
+[https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin::Python_test_scripts
+Openflow tests for RESTCONF] can be adapted for PCMM and service flow
+testing.
+https://git.opendaylight.org/gerrit/gitweb?p=packetcable.git;a=tree;f=packetcable-client[Browse
+this folder] for WIP of tests and examples used for minimum acceptance
+testing.
+
+[[restconfapi.py]]
+==== restconfapi.py
+
+Scripted series of packetcable actions testing minimum compliance.
+
+For example, adding a CMTS, adding IPv4 flow, delete flow and delete
+CMTS.
+
+Other flows can be formulated and added to create a regression test of
+what kind of flows are interesting for use cases. Multicast?
+
+[[flow_config_perf_pcmm.py]]
+==== flow_config_perf_pcmm.py
+
+For load testing there is this nice tool that could be repurpose to load
+test a CMTS. TODO: Adapt this script for load testing PCMM on a CMTS.
+
+[[yang-ide]]
+=== Yang-IDE
+
+https://github.com/xored/yang-ide/wiki/Setup-and-build[Setup and Build
+Yang-IDE for Eclipse]
+
+[[using-wireshark-to-trace-pcmm]]
+== Using Wireshark to Trace PCMM
+
+1.  To start wireshark with privileges issue the following command:
++
+----------------
+sudo wireshark &
+----------------
+2.  Select the interface to monitor.
+3.  Use the Filter to only display COPS messages by applying “cops” in
+the filter field.
+
+image:Screenshot8.png[Screenshot8.png,title="Screenshot8.png"]
+
+[[debugging-and-verifying-dqos-gate-flows-on-the-cmts]]
+== Debugging and Verifying DQoS Gate (Flows) on the CMTS
+
+http://books.google.com/books?id=zNnCLUa8CHQC&pg=PA701&lpg=PA701&dq=show+packetcable+gate[This
+book] serves as a good reference. Below are some of the most useful CMTS
+commands to verify flows have been enabled on the CMTS.
+
+[[cisco]]
+=== Cisco
+
+http://www.cisco.com/c/en/us/td/docs/cable/cmts/cmd_ref/b_cmts_cable_cmd_ref.pdf[Cisco
+CMTS Cable Command Reference]
+
+[[find-the-cable-modem]]
+=== Find the Cable Modem
+
+-----------------------------------------------------------------------------------
+10k2-DSG#show cable modem
+                                                                                  D
+MAC Address    IP Address      I/F           MAC           Prim RxPwr  Timing Num I
+                                             State         Sid  (dBmv) Offset CPE P
+0010.188a.faf6 0.0.0.0         C8/0/0/U0     offline       1    0.00   1482   0   N
+74ae.7600.01f3 10.32.115.150   C8/0/10/U0    online        1    -0.50  1431   0   Y
+0010.188a.fad8 10.32.115.142   C8/0/10/UB    w-online      2    -0.50  1507   1   Y
+000e.0900.00dd 10.32.115.143   C8/0/10/UB    w-online      3    1.00   1677   0   Y
+e86d.5271.304f 10.32.115.168   C8/0/10/UB    w-online      6    -0.50  1419   1   Y
+-----------------------------------------------------------------------------------
+
+[[show-pcmm-plugin-connection]]
+=== Show PCMM Plugin Connection
+
+----------------------------------------------------------------------------
+10k2-DSG#show packetcabl ?
+  cms     Gate Controllers connected to this PacketCable client
+  event   Event message server information
+  gate    PacketCable gate information
+  global  PacketCable global information
+
+10k2-DSG#show packetcable cms
+GC-Addr        GC-Port  Client-Addr    COPS-handle  Version PSID Key PDD-Cfg
+
+
+10k2-DSG#show packetcable cms
+GC-Addr        GC-Port  Client-Addr    COPS-handle  Version PSID Key PDD-Cfg
+10.32.0.240    54238    10.32.15.3     0x4B9C8150/1    4.0   0    0   0   
+----------------------------------------------------------------------------
+
+[[show-cops-messages]]
+=== Show COPS Messages
+
+------------------
+debug cops details
+------------------
+
+[[use-cm-mac-address-to-list-service-flows]]
+=== Use CM Mac Address to List Service Flows
+
+------------------------------------------------------------------------------------
+10k2-DSG#show cable modem    
+                                                                                  D
+MAC Address    IP Address      I/F           MAC           Prim RxPwr  Timing Num I
+                                             State         Sid  (dBmv) Offset CPE P
+0010.188a.faf6 ---             C8/0/0/UB     w-online      1    0.50   1480   1   N
+74ae.7600.01f3 10.32.115.150   C8/0/10/U0    online        1    -0.50  1431   0   Y
+0010.188a.fad8 10.32.115.142   C8/0/10/UB    w-online      2    -0.50  1507   1   Y
+000e.0900.00dd 10.32.115.143   C8/0/10/UB    w-online      3    0.00   1677   0   Y
+e86d.5271.304f 10.32.115.168   C8/0/10/UB    w-online      6    -0.50  1419   1   Y
+
+
+10k2-DSG#show cable modem 000e.0900.00dd service-flow
+                                                 
+
+SUMMARY:
+MAC Address    IP Address      Host          MAC           Prim  Num Primary    DS
+                               Interface     State         Sid   CPE Downstream RfId
+000e.0900.00dd 10.32.115.143   C8/0/10/UB    w-online      3     0   Mo8/0/2:1  2353
+
+
+Sfid  Dir Curr  Sid   Sched  Prio MaxSusRate  MaxBrst     MinRsvRate  Throughput 
+          State       Type
+23    US  act   3     BE     0    0           3044        0           39         
+30    US  act   16    BE     0    500000      3044        0           0          
+24    DS  act   N/A   N/A    0    0           3044        0           17         
+
+
+
+UPSTREAM SERVICE FLOW DETAIL:
+
+SFID  SID   Requests   Polls      Grants     Delayed    Dropped    Packets   
+                                             Grants     Grants
+23    3     784        0          784        0          0          784       
+30    16    0          0          0          0          0          0         
+
+
+DOWNSTREAM SERVICE FLOW DETAIL:
+
+SFID  RP_SFID QID    Flg Policer               Scheduler             FrwdIF    
+                         Xmits      Drops      Xmits      Drops
+24    33019   131550     0          0          777        0          Wi8/0/2:2
+
+Flags Legend:
+$: Low Latency Queue (aggregated)
+~: CIR Queue
+------------------------------------------------------------------------------------
+
+[[deleting-a-pcmm-gate-message-from-the-cmts]]
+=== Deleting a PCMM Gate Message from the CMTS
+
+------------------------------------------
+10k2-DSG#test cable dsd  000e.0900.00dd 30
+------------------------------------------
+
+[[find-service-flows]]
+=== Find service flows
+
+All gate controllers currently connected to the PacketCable client are
+displayed
+
+------------------------------------------------------
+show cable modem 00:11:22:33:44:55 service flow   ????
+show cable modem
+------------------------------------------------------
+
+[[debug-and-display-pcmm-gate-messages]]
+=== Debug and display PCMM Gate messages
+
+------------------------------
+debug packetcable gate control
+debug packetcable gate events
+show packetcable gate summary
+show packetcable global
+show packetcable cms
+------------------------------
+
+[[debug-cops-messages]]
+=== Debug COPS messages
+
+-----------------------------
+debug cops detail
+debug packetcable cops
+debug cable dynamic_qos trace
+-----------------------------
+
+[[arris]]
+=== Arris
+
+Pending
+
+[[integration-verification]]
+== Integration Verification
+
+Checkout the integration project and perform regression tests.
+
+--------------------------------------------------------------------------
+git clone ssh://${ODL_USERNAME}@git.opendaylight.org:29418/integration.git
+git clone https:/git.opendaylight.org/gerrit/integration.git
+--------------------------------------------------------------------------
+
+1.  Check and edit the
+integration/features/src/main/resources/features.xml and follow the
+directions there.
+2.  Check and edit the integration/features/pom.xml and add a dependency
+for your feature file
+3.  Build integration/features and debug
+
+`  mvn clean install`
+
+Test your feature in the integration/distributions/extra/karaf/
+distribution
+
+-----------------------------------------
+cd integration/distributions/extra/karaf/
+mvn clean install
+cd target/assembly/bin
+./karaf
+-----------------------------------------
+
+[[service-wrapper]]
+=== service-wrapper
+
+Install http://karaf.apache.org/manual/latest/users-guide/wrapper.html
+
+--------------------------------------------------------------------------------------------------------
+opendaylight-user@root>feature:install service-wrapper
+opendaylight-user@root>wrapper:install --help
+DESCRIPTION
+        wrapper:install
+
+Install the container as a system service in the OS.
+
+SYNTAX
+        wrapper:install [options]
+
+OPTIONS
+        -d, --display
+                The display name of the service.
+                (defaults to karaf)
+        --help
+                Display this help message
+        -s, --start-type
+                Mode in which the service is installed. AUTO_START or DEMAND_START (Default: AUTO_START)
+                (defaults to AUTO_START)
+        -n, --name
+                The service name that will be used when installing the service. (Default: karaf)
+                (defaults to karaf)
+        -D, --description
+                The description of the service.
+                (defaults to )
+
+opendaylight-user@root> wrapper:install
+Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/bin/karaf-wrapper
+Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/bin/karaf-service
+Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/etc/karaf-wrapper.conf
+Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/lib/libwrapper.so
+Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/lib/karaf-wrapper.jar
+Creating file: /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/lib/karaf-wrapper-main.jar
+
+Setup complete.  You may wish to tweak the JVM properties in the wrapper configuration file:
+/home/user/odl/distribution-karaf-0.2.0-Helium-RC0/etc/karaf-wrapper.conf
+before installing and starting the service.
+
+
+Ubuntu/Debian Linux system detected:
+  To install the service:
+    $ ln -s /home/user/odl/distribution-karaf-0.2.0-Helium-RC0/bin/karaf-service /etc/init.d/
+
+  To start the service when the machine is rebooted:
+    $ update-rc.d karaf-service defaults
+
+  To disable starting the service when the machine is rebooted:
+    $ update-rc.d -f karaf-service remove
+
+  To start the service:
+    $ /etc/init.d/karaf-service start
+
+  To stop the service:
+    $ /etc/init.d/karaf-service stop
+
+  To uninstall the service :
+    $ rm /etc/init.d/karaf-service
+--------------------------------------------------------------------------------------------------------
diff --git a/manuals/developer-guide/src/main/resources/images/Odp_diagram_helium_v6.jpg b/manuals/developer-guide/src/main/resources/images/Odp_diagram_helium_v6.jpg
new file mode 100644 (file)
index 0000000..9d0555f
Binary files /dev/null and b/manuals/developer-guide/src/main/resources/images/Odp_diagram_helium_v6.jpg differ
diff --git a/manuals/developer-guide/src/main/resources/images/Screenshot6.png b/manuals/developer-guide/src/main/resources/images/Screenshot6.png
new file mode 100644 (file)
index 0000000..601067c
Binary files /dev/null and b/manuals/developer-guide/src/main/resources/images/Screenshot6.png differ
diff --git a/manuals/developer-guide/src/main/resources/images/Screenshot8.png b/manuals/developer-guide/src/main/resources/images/Screenshot8.png
new file mode 100644 (file)
index 0000000..806aaa8
Binary files /dev/null and b/manuals/developer-guide/src/main/resources/images/Screenshot8.png differ
index 199ad39790e139447068b3243627bf17c71ddecc..6da67f53530e1eeac2422882f077dbed1ec7f6e4 100644 (file)
@@ -52,6 +52,8 @@ include::ttp/ttp-cli-tools-user.adoc[TTP]
 
 include::capwap/capwap-user.adoc[CAPWAP]
 
+include::packetcable/packetcable-user.adoc[PacketCable PCMM - CMTS Management]
+
 include::tsdr/tsdr-hbase-user.adoc[]
 
 include::tsdr/tsdr-h2-user.adoc[]
diff --git a/manuals/user-guide/src/main/asciidoc/packetcable/packetcable-user.adoc b/manuals/user-guide/src/main/asciidoc/packetcable/packetcable-user.adoc
new file mode 100644 (file)
index 0000000..477c42e
--- /dev/null
@@ -0,0 +1,126 @@
+[[pcmm-user-guide-preliminary]]
+= PCMM User Guide (*Preliminary*)
+
+[[system-overview]]
+== System Overview
+
+These components introduce a DOCSIS QoS Service Flow management using
+the PCMM protocol. The driver component is responsible for the
+PCMM/COPS/PDP functionality required to service requests from
+PacketCable Provider and FlowManager. Requests are transposed into PCMM
+Gate Control messages and transmitted via COPS to the CMTS. This plugin
+adheres to the PCMM/COPS/PDP functionality defined in the CableLabs
+specification. PacketCable solution is an MDSAL compliant component.
+
+image:Screenshot6.png[Screenshot6.png,title="Screenshot6.png"]
+
+image:Odp_diagram_helium_v6.jpg[Odp_diagram_helium_v6.jpg,title="Odp_diagram_helium_v6.jpg"]
+
+[[dependency-map]]
+== Dependency Map
+
+image:ODL-Helium-dependency.png[ODL-Helium-dependency.png,title="ODL-Helium-dependency.png"]
+
+[[packetcable-components]]
+== Packetcable Components
+
+packetcable is comprised of three OpendayLight bundles
+
+[cols=",",options="header",]
+|=======================================================================
+|Bundle |Description
+|packetcable-model |Contains the YANG information model for flows and
+nodes
+
+|packetcable-provider |Provider hosts the model processing, RESTCONF,
+API implementation, and brokers requests to consumer
+
+|packetcable-consumer |Consumer hosts packet codec and sends requests to
+driver
+
+|packetcable-driver |The codec for transforming the model into the
+appropriate PCMM Gate message for flows and CMTS connections.
+|=======================================================================
+
+See
+https://git.opendaylight.org/gerrit/gitweb?p=packetcable.git;a=tree;f=packetcable-model/src/main/yang[YANG
+Model]
+
+[[features-to-install]]
+=== Features to Install
+
+---------------------------------------------------------------------------------------------------------------------------
+opendaylight-user@root>feature:install odl-restconf odl-l2switch-switch odl-dlux-core odl-mdsal-apidocs odl-packetcable-all
+---------------------------------------------------------------------------------------------------------------------------
+
+[[accessing-user-interface-assets]]
+== Accessing User Interface Assets
+
+[[management-ui]]
+=== Management UI
+
+[[install-node.js]]
+==== Install Node.js
+
+Use the following script install_nodejs.sh to guide you through Node.js
+installation on Ubuntu.
+
+-------------------------------------------------
+#!/bin/sh 
+
+sudo apt-get install nodejs nodejs-legacy npm git
+sudo npm -g install grunt
+sudo npm -g install grunt-cli
+sudo npm -g install bower
+sudo npm -g install karma
+sudo npm -g install karma-cli
+-------------------------------------------------
+
+NOTE: Not needed unless running standalone.
+https://wiki.opendaylight.org/view/OpenDaylight_dlux:Setup_and_Run[Setup
+dLux for Development]
+
+http://localhost:8181/dlux/index.html
+
+user: admin
+
+password: admin
+
+Sign in
+
+image:Screenshot4.png[|Dlux Login,title="|Dlux Login"]
+
+Manage Flows
+
+image:Screenshot3.png[|Dlux Flows,title="|Dlux Flows"]
+
+Manage Nodes
+
+image:Screenshot2.png[|Dlux Nodes,title="|Dlux Nodes"]
+
+[[explore-and-exercise-the-packetcable-rest-api]]
+=== Explore and exercise the PacketCable REST API
+
+http://localhost:8181/apidoc/explorer/index.html
+
+link:#RESTCONF_API_Explorer[ See Explorer ]
+
+[[Add CMTS]]
+== Adding a CMTS to OpenDaylight Inventory
+
+Add a CMTS to Opendaylight Inventory
+
+image:Screenshot1.png[Add CMTS using RESTCONF
+Explorer,title="Add CMTS using RESTCONF Explorer"]
+
+[[postman]]
+=== Postman
+
+https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en[Configure
+the Chrome browser]
+
+https://git.opendaylight.org/gerrit/gitweb?p=packetcable.git;a=tree;f=packetcable-client[Download
+and import sample packetcable collection]
+
+image:Screenshot5.png[Postman,title="Postman"]
+
diff --git a/manuals/user-guide/src/main/resources/images/ODL-Helium-dependency.png b/manuals/user-guide/src/main/resources/images/ODL-Helium-dependency.png
new file mode 100644 (file)
index 0000000..4632cf9
Binary files /dev/null and b/manuals/user-guide/src/main/resources/images/ODL-Helium-dependency.png differ
diff --git a/manuals/user-guide/src/main/resources/images/Odp_diagram_helium_v6.jpg b/manuals/user-guide/src/main/resources/images/Odp_diagram_helium_v6.jpg
new file mode 100644 (file)
index 0000000..9d0555f
Binary files /dev/null and b/manuals/user-guide/src/main/resources/images/Odp_diagram_helium_v6.jpg differ
diff --git a/manuals/user-guide/src/main/resources/images/Screenshot1.png b/manuals/user-guide/src/main/resources/images/Screenshot1.png
new file mode 100644 (file)
index 0000000..de00dc2
Binary files /dev/null and b/manuals/user-guide/src/main/resources/images/Screenshot1.png differ
diff --git a/manuals/user-guide/src/main/resources/images/Screenshot2.png b/manuals/user-guide/src/main/resources/images/Screenshot2.png
new file mode 100644 (file)
index 0000000..f8e9648
Binary files /dev/null and b/manuals/user-guide/src/main/resources/images/Screenshot2.png differ
diff --git a/manuals/user-guide/src/main/resources/images/Screenshot3.png b/manuals/user-guide/src/main/resources/images/Screenshot3.png
new file mode 100644 (file)
index 0000000..e97bf5c
Binary files /dev/null and b/manuals/user-guide/src/main/resources/images/Screenshot3.png differ
diff --git a/manuals/user-guide/src/main/resources/images/Screenshot4.png b/manuals/user-guide/src/main/resources/images/Screenshot4.png
new file mode 100644 (file)
index 0000000..5774bfe
Binary files /dev/null and b/manuals/user-guide/src/main/resources/images/Screenshot4.png differ
diff --git a/manuals/user-guide/src/main/resources/images/Screenshot5.png b/manuals/user-guide/src/main/resources/images/Screenshot5.png
new file mode 100644 (file)
index 0000000..61b30d6
Binary files /dev/null and b/manuals/user-guide/src/main/resources/images/Screenshot5.png differ
diff --git a/manuals/user-guide/src/main/resources/images/Screenshot6.png b/manuals/user-guide/src/main/resources/images/Screenshot6.png
new file mode 100644 (file)
index 0000000..601067c
Binary files /dev/null and b/manuals/user-guide/src/main/resources/images/Screenshot6.png differ