diff --git a/lib/bmc_network_utils.py b/lib/bmc_network_utils.py
index 530f80f..eb1f4e9 100644
--- a/lib/bmc_network_utils.py
+++ b/lib/bmc_network_utils.py
@@ -5,8 +5,10 @@
 
 """
 
+import re
 import ipaddress
 from robot.libraries.BuiltIn import BuiltIn
+import var_funcs as vf
 
 
 def netmask_prefix_length(netmask):
@@ -20,3 +22,51 @@
 
     # IP address netmask format: '0.0.0.0/255.255.252.0'
     return ipaddress.ip_network('0.0.0.0/' + netmask).prefixlen
+
+
+def parse_nping_output(output):
+    r"""
+    Parse the output from the nping command and return as a dictionary.
+
+    Example of output value:
+
+    Starting Nping 0.6.47 ( http://nmap.org/nping ) at 2019-08-07 22:05 IST
+    SENT (0.0181s) TCP Source IP:37577 >
+      Destination IP:80 S ttl=64 id=39113 iplen=40  seq=629782493 win=1480
+    SENT (0.2189s) TCP Source IP:37577 >
+      Destination IP:80 S ttl=64 id=39113 iplen=40  seq=629782493 win=1480
+    RCVD (0.4120s) TCP Destination IP:80 >
+      Source IP:37577 SA ttl=49 id=0 iplen=44  seq=1078301364 win=5840 <mss 1380>
+    Max rtt: 193.010ms | Min rtt: 193.010ms | Avg rtt: 193.010ms
+    Raw packets sent: 2 (80B) | Rcvd: 1 (46B) | Lost: 1 (50.00%)
+    Nping done: 1 IP address pinged in 0.43 seconds
+
+    Example of data returned by this function:
+
+    nping_result:
+      [max_rtt]:                 193.010ms
+      [min_rtt]:                 193.010ms
+      [avg_rtt]:                 193.010ms
+      [raw_packets_sent]:        2 (80B)
+      [rcvd]:                    1 (46B)
+      [lost]:                    1 (50.00%)
+      [percent_lost]:            50.00
+
+    Description of argument(s):
+    output                          The output obtained by running an nping
+                                    command.
+    """
+
+    lines = output.split("\n")
+    # Obtain only the lines of interest.
+    lines = list(filter(lambda x: re.match(r"(Max rtt|Raw packets)", x),
+                        lines))
+
+    key_value_list = []
+    for line in lines:
+        key_value_list += line.split("|")
+    nping_result = vf.key_value_list_to_dict(key_value_list)
+    # Extract percent_lost value from lost field.
+    nping_result['percent_lost'] = \
+        float(nping_result['lost'].split(" ")[-1].strip("()%"))
+    return nping_result
