diff --git a/ofagent/loxi/of13/common.py b/ofagent/loxi/of13/common.py
index 4bf1750..eb95605 100644
--- a/ofagent/loxi/of13/common.py
+++ b/ofagent/loxi/of13/common.py
@@ -1947,6 +1947,21 @@
 
 hello_elem.subtypes[1] = hello_elem_versionbitmap
 
+class hello_elem_bitmap(loxi.OFObject):
+
+    def __init__(self, version_list=None):
+        if version_list != None:
+            self.version_list = version_list
+        else:
+            self.version_list = []
+        self.bitmap = 0
+        for version in version_list:
+            self.bitmap = self.bitmap | 1 << version
+        return
+
+    def pack(self):
+        return struct.pack("!L", self.bitmap)
+
 class match_v3(loxi.OFObject):
     type = 1
 
diff --git a/ofagent/loxi/of13/util.py b/ofagent/loxi/of13/util.py
index 5eadb10..3735787 100644
--- a/ofagent/loxi/of13/util.py
+++ b/ofagent/loxi/of13/util.py
@@ -121,3 +121,13 @@
 def unpack_checksum_128(reader):
     hi, lo = reader.read("!QQ")
     return (hi << 64) | lo
+
+def bitmap_to_version(bitmaps):
+    versions = [i * 32 + shift
+                for i, bitmap in enumerate(bitmaps)
+                for shift in range(31) if bitmap & (1 << shift)]
+    return versions
+
+def verify_version_support(msg,version_list):
+    version_list_sup = bitmap_to_version([msg.elements[0].bitmaps[0].value])
+    return any(i in version_list_sup for i in version_list)
