diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/util/OpenstackTelemetryUtil.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/util/OpenstackTelemetryUtil.java
index a957369..860da11 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/util/OpenstackTelemetryUtil.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/util/OpenstackTelemetryUtil.java
@@ -16,6 +16,7 @@
 package org.onosproject.openstacktelemetry.util;
 
 import com.google.common.base.Strings;
+import org.onlab.packet.IPv4;
 import org.onosproject.cfg.ConfigProperty;
 import org.onosproject.openstacktelemetry.api.TelemetryAdminService;
 import org.onosproject.openstacktelemetry.api.config.TelemetryConfig;
@@ -31,6 +32,11 @@
  */
 public final class OpenstackTelemetryUtil {
 
+    private static final String PROTOCOL_NAME_TCP = "tcp";
+    private static final String PROTOCOL_NAME_UDP = "udp";
+    private static final String PROTOCOL_NAME_ANY = "any";
+    private static final int ARBITRARY_PROTOCOL = 0x0;
+
     /**
      * Prevents object instantiation from external.
      */
@@ -72,6 +78,42 @@
     }
 
     /**
+     * Obtains transport protocol type from the given string.
+     *
+     * @param str transport protocol name
+     * @return transport protocol type
+     */
+    public static byte getProtocolTypeFromString(String str) {
+        switch (str.toLowerCase()) {
+            case PROTOCOL_NAME_TCP:
+                return IPv4.PROTOCOL_TCP;
+            case PROTOCOL_NAME_UDP:
+                return IPv4.PROTOCOL_UDP;
+            default:
+                return ARBITRARY_PROTOCOL;
+        }
+    }
+
+    /**
+     * Obtains protocol name from the protocol type.
+     *
+     * @param type transport protocol type
+     * @return transport protocol name
+     */
+    public static String getProtocolNameFromType(byte type) {
+        switch (type) {
+            case IPv4.PROTOCOL_TCP:
+                return PROTOCOL_NAME_TCP;
+            case IPv4.PROTOCOL_UDP:
+                return PROTOCOL_NAME_UDP;
+            case ARBITRARY_PROTOCOL:
+                return PROTOCOL_NAME_ANY;
+            default:
+                return PROTOCOL_NAME_ANY;
+        }
+    }
+
+    /**
      * Initializes the telemetry service due tue configuration changes.
      *
      *
