VPP-279: Document changes for vnet/vnet/devices 81/5481/2
authorBilly McFall <[email protected]>
Wed, 22 Feb 2017 19:13:42 +0000 (14:13 -0500)
committerDamjan Marion <[email protected]>
Fri, 24 Feb 2017 09:21:31 +0000 (09:21 +0000)
commit04197eea69c77a0145dc54d56fc767a03897c90e
treef45004fe682e7029d7d0009c242b71750b31f206
parent4a3f69c17f26e9790db26d0910befe36b5e9f85f
VPP-279: Document changes for vnet/vnet/devices

Add doxygen documentation for dpdk CLI commands.

Outside of adding documentation to the CLI Commands, modified the CLI
code as follows:
* The "set dpdk interface placement" command allows the user to move
  interface/queues to a different thread. But there is only a subset of
  threads that are valid. Updated the "show dpdk interface placement"
  command to display all valid threads, even if all interface/queues
  have been moved off. Updated the "show dpdk interface hqos placement"
  the same way.
* There is a command to modify the Subport attributes, but no way to
  display the changes. Added a "Subport" section to the "show dpdk
  interface hqos" command.
* Reworked the "set dpdk interface hqos subport" command.
  - The current implementation had a local rte_sched_subport_params
    structure and initialized it to default values, then overwrote with
    what was input. The side effect of this is that if all the current
    data is non-default, and a new command is entered with just one
    attribute, all the remaining attrbutes are getting set back to
    default under the cover. Very confusing for the user. Updated the
    code to read the current value and overwrite what has changed.
  - DPDK does not have a read subport data, so no way query the current
    applied values. The set command was not updating the local copy that
    is created at init. Modified the code to store the updated values if
    the DPDK apply function was successful.
  - Several functions repeated the same code to get a pointer to the
    local HQoS data. Added a utility function.get_hqos(..), to perform
    this action. Did not port other code to use new function.
* The "set dpdk interface hqos pktfield" allows the user to set the
  packet fields required for classifiying the incoming packet. The
  classification is across three fields (subport, pipe, tc). The command
  was using 0,1,2 to represent these three fields, but had no
  explanation regarding these magic numbers. Updated the command to take
  the three tokens (subport, pipe, tc) for more clarity. For legacy
  sake, still allow 0,1,2 to be entered. Also updated the "show dpdk
  interface hqos" command to show these tokens.
* The "set dpdk interface hqos tctbl" maps an interface and value 0-63
  to a traffic class and queue. The "show dpdk interface hqos" command
  showed the internal DPDK magic number for traffic class and queue.
  Updated the show command to display what was input instead of the
  magic number.
* The "show dpdk hqos queue" command always returns zeros by default
  because RTE_SCHED_COLLECT_STATS is not defined in DPDK. Took me a
  while to figure out why I wasn't getting values returned. So returned
  an error message if RTE_SCHED_COLLECT_STATS is not defined instead of
  zeros.

Change-Id: I22b640d668245839ee977ef3602175c61d91d24c
Signed-off-by: Billy McFall <[email protected]>
src/vnet/devices/dpdk/cli.c
src/vnet/devices/dpdk/qos_doc.md