[spp] [PATCH 01/10] controller: move vf help msg to SppVf.help
yasufum.o at gmail.com
yasufum.o at gmail.com
Mon Jun 24 09:11:15 CEST 2019
From: Yasufumi Ogawa <yasufum.o at gmail.com>
SPP CLI is implemented with python's cmd library and help message is
defined as a comment of `do_*` method. However, total number of lines
tends to be a large number if the number of command is increased.
To avoid such a situation, this update is to move comment of `do_vf`
to `SppVf.help` to reduce the number of lines.
Signed-off-by: Yasufumi Ogawa <yasufum.o at gmail.com>
---
src/controller/commands/vf.py | 54 +++++++++++++++++++++++++++++++++++
src/controller/shell.py | 46 ++++-------------------------
2 files changed, 59 insertions(+), 41 deletions(-)
diff --git a/src/controller/commands/vf.py b/src/controller/commands/vf.py
index b673f0f..c6192e0 100644
--- a/src/controller/commands/vf.py
+++ b/src/controller/commands/vf.py
@@ -501,3 +501,57 @@ class SppVf(object):
if 'RES_UID'.startswith(sub_tokens[5]):
res.append('RES_UID')
return res
+
+ @classmethod
+ def help(cls):
+ msg = """Send a command to spp_vf.
+
+ SPP VF is a secondary process for pseudo SR-IOV features. This
+ command has four sub commands.
+ * status
+ * component
+ * port
+ * classifier_table
+
+ Each of sub commands other than 'status' takes several parameters
+ for detailed operations. Notice that 'start' for launching a worker
+ is replaced with 'stop' for terminating. 'add' is also replaced with
+ 'del' for deleting.
+
+ Examples:
+
+ # (1) show status of worker threads and resources
+ spp > vf 1; status
+
+ # (2) launch or terminate a worker thread with arbitrary name
+ # NAME: arbitrary name used as identifier
+ # CORE_ID: one of unused cores referred from status
+ # ROLE: role of workers, 'forward', 'merge' or 'classifier_mac'
+ spp > vf 1; component start NAME CORE_ID ROLE
+ spp > vf 1; component stop NAME CORE_ID ROLE
+
+ # (3) add or delete a port to worker of NAME
+ # RES_UID: resource UID such as 'ring:0' or 'vhost:1'
+ # DIR: 'rx' or 'tx'
+ spp > vf 1; port add RES_UID DIR NAME
+ spp > vf 1; port del RES_UID DIR NAME
+
+ # (4) add or delete a port with vlan ID to worker of NAME
+ # VID: vlan ID
+ # PCP: priority code point defined in IEEE 802.1p
+ spp > vf 1; port add RES_UID DIR NAME add_vlantag VID PCP
+ spp > vf 1; port del RES_UID DIR NAME add_vlantag VID PCP
+
+ # (5) add a port of deleting vlan tag
+ spp > vf 1; port add RES_UID DIR NAME del_vlantag
+
+ # (6) add or delete an entry of MAC address and resource to classify
+ spp > vf 1; classifier_table add mac MAC_ADDR RES_UID
+ spp > vf 1; classifier_table del mac MAC_ADDR RES_UID
+
+ # (7) add or delete an entry of MAC address and resource with vlan ID
+ spp > vf 1; classifier_table add vlan VID MAC_ADDR RES_UID
+ spp > vf 1; classifier_table del vlan VID MAC_ADDR RES_UID
+ """
+
+ print(msg)
diff --git a/src/controller/shell.py b/src/controller/shell.py
index 057f70a..75dabaa 100644
--- a/src/controller/shell.py
+++ b/src/controller/shell.py
@@ -406,52 +406,12 @@ class Shell(cmd.Cmd, object):
def do_vf(self, cmd):
"""Send a command to spp_vf.
- SPP VF is a secondary process for pseudo SR-IOV features. This
+ spp_vf is a secondary process for pseudo SR-IOV features. This
command has four sub commands.
* status
* component
* port
* classifier_table
-
- Each of sub commands other than 'status' takes several parameters
- for detailed operations. Notice that 'start' for launching a worker
- is replaced with 'stop' for terminating. 'add' is also replaced with
- 'del' for deleting.
-
- Examples:
-
- # (1) show status of worker threads and resources
- spp > vf 1; status
-
- # (2) launch or terminate a worker thread with arbitrary name
- # NAME: arbitrary name used as identifier
- # CORE_ID: one of unused cores referred from status
- # ROLE: role of workers, 'forward', 'merge' or 'classifier_mac'
- spp > vf 1; component start NAME CORE_ID ROLE
- spp > vf 1; component stop NAME CORE_ID ROLE
-
- # (3) add or delete a port to worker of NAME
- # RES_UID: resource UID such as 'ring:0' or 'vhost:1'
- # DIR: 'rx' or 'tx'
- spp > vf 1; port add RES_UID DIR NAME
- spp > vf 1; port del RES_UID DIR NAME
-
- # (4) add or delete a port with vlan ID to worker of NAME
- # VID: vlan ID
- # PCP: priority code point defined in IEEE 802.1p
- spp > vf 1; port add RES_UID DIR NAME add_vlantag VID PCP
- spp > vf 1; port del RES_UID DIR NAME add_vlantag VID PCP
-
- # (5) add a port of deleting vlan tag
- spp > vf 1; port add RES_UID DIR NAME del_vlantag
-
- # (6) add or delete an entry of MAC address and resource to classify
- spp > vf 1; classifier_table add mac MAC_ADDR RES_UID
- spp > vf 1; classifier_table del mac MAC_ADDR RES_UID
-
- # (7) add or delete an entry of MAC address and resource with vlan ID
- spp > vf 1; classifier_table add vlan VID MAC_ADDR RES_UID
- spp > vf 1; classifier_table del vlan VID MAC_ADDR RES_UID
"""
# remove unwanted spaces to avoid invalid command error
@@ -466,6 +426,10 @@ class Shell(cmd.Cmd, object):
else:
print('Invalid command: %s' % tmparg)
+ def help_vf(self):
+ """Print help message of spp_vf."""
+ vf.SppVf.help()
+
def complete_vf(self, text, line, begidx, endidx):
"""Completion for vf command."""
--
2.17.1
More information about the spp
mailing list