Add Nicira role request test
diff --git a/tests/nicira_role.py b/tests/nicira_role.py
new file mode 100644
index 0000000..a8ac8cf
--- /dev/null
+++ b/tests/nicira_role.py
@@ -0,0 +1,46 @@
+"""
+"""
+import struct
+
+import logging
+
+from oftest import config
+import oftest.controller as controller
+import oftest.cstruct as ofp
+import oftest.message as message
+import oftest.base_tests as base_tests
+
+from oftest.testutils import *
+
+# Nicira vendor extension constants
+NXT_VENDOR = 0x00002320
+
+NXT_ROLE_REQUEST = 10
+
+NXT_ROLE_VALUE = dict( other=0, slave=1, master=2 )
+
+class NiciraRoleRequest(base_tests.SimpleDataPlane):
+ """
+ Exercise Nicira vendor extension for requesting HA roles
+ """
+
+ priority = 0
+
+ def nicira_role_request(self, role):
+ """
+ Use the BSN_SET_IP_MASK vendor command to change the IP mask for the
+ given wildcard index
+ """
+ logging.info("Sending role request %s" % role)
+ m = message.vendor()
+ m.vendor = NXT_VENDOR
+ m.data = struct.pack("!LL", NXT_ROLE_REQUEST, NXT_ROLE_VALUE[role])
+ return m
+
+ def runTest(self):
+ '''
+ For now, we only verify that a response is received.
+ '''
+ request = self.nicira_role_request("master")
+ response, pkt = self.controller.transact(request)
+ self.assertTrue(response is not None, "No reply to Nicira role request")