loxi-prep: access message/action modules through the ofp module
diff --git a/tests/FuncUtils.py b/tests/FuncUtils.py
index 14d8023..7004580 100644
--- a/tests/FuncUtils.py
+++ b/tests/FuncUtils.py
@@ -6,9 +6,7 @@
 
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import logging
 import types
@@ -20,7 +18,7 @@
 #################### Functions for various types of flow_mod  ##########################################################################################
 
 def match_send_flowadd(self, match, priority, port):
-    msg = message.flow_mod()
+    msg = ofp.message.flow_mod()
     msg.out_port = ofp.OFPP_NONE
     msg.command = ofp.OFPFC_ADD
     # msg.cookie = random.randint(0,9007199254740992)
@@ -28,7 +26,7 @@
     msg.match = match
     if priority != None :
         msg.priority = priority
-    act = action.action_output()
+    act = ofp.action.action_output()
     act.port = port 
     msg.actions.add(act)
     self.controller.message_send(msg)
@@ -325,12 +323,12 @@
 # Strict Modify the flow Action 
         
     #Create a flow_mod message , command MODIFY_STRICT
-    msg5 = message.flow_mod()
+    msg5 = ofp.message.flow_mod()
     msg5.match = match
     msg5.cookie = random.randint(0,9007199254740992)
     msg5.command = ofp.OFPFC_MODIFY_STRICT
     msg5.buffer_id = 0xffffffff
-    act5 = action.action_output()
+    act5 = ofp.action.action_output()
     act5.port = egress_port
     msg5.actions.add(act5)
 
@@ -345,14 +343,14 @@
 # Modify the flow action
         
     #Create a flow_mod message , command MODIFY 
-    msg8 = message.flow_mod()
+    msg8 = ofp.message.flow_mod()
     msg8.match = match
     msg8.cookie = random.randint(0,9007199254740992)
     msg8.command = ofp.OFPFC_MODIFY
     #out_port will be ignored for flow adds and flow modify (here for test-case Add_Modify_With_Outport)
     msg8.out_port = of_ports[3]
     msg8.buffer_id = 0xffffffff
-    act8 = action.action_output()
+    act8 = ofp.action.action_output()
     act8.port = of_ports[2]
     msg8.actions.add(act8)
 
@@ -373,10 +371,10 @@
             "Could not generate flow match from pkt")
     
     match.in_port = ingress_port
-    request = message.flow_mod()
+    request = ofp.message.flow_mod()
     request.match = match
     request.buffer_id = 0xffffffff
-    act = action.action_enqueue()
+    act = ofp.action.action_enqueue()
     act.port     = egress_port
     act.queue_id = egress_queue_id
     request.actions.add(act)
@@ -391,7 +389,7 @@
 def get_flowstats(self,match):
     # Generate flow_stats request
     
-    stat_req = message.flow_stats_request()
+    stat_req = ofp.message.flow_stats_request()
     stat_req.match = match
     stat_req.table_id = 0xff
     stat_req.out_port = ofp.OFPP_NONE
@@ -405,7 +403,7 @@
 def get_portstats(self,port_num):
 
 # Return all the port counters in the form a tuple 
-    port_stats_req = message.port_stats_request()
+    port_stats_req = ofp.message.port_stats_request()
     port_stats_req.port_no = port_num  
     response,pkt = self.controller.transact(port_stats_req)
     self.assertTrue(response is not None,"No response received for port stats request") 
@@ -443,7 +441,7 @@
 def get_queuestats(self,port_num,queue_id):
 #Generate Queue Stats request 
 
-    request = message.queue_stats_request()
+    request = ofp.message.queue_stats_request()
     request.port_no  = port_num
     request.queue_id = queue_id
     (queue_stats, p) = self.controller.transact(request)
@@ -454,7 +452,7 @@
 def get_tablestats(self):
 # Send Table_Stats request (retrieve current table counters )
 
-    stat_req = message.table_stats_request()
+    stat_req = ofp.message.table_stats_request()
     response, pkt = self.controller.transact(stat_req,
                                                      timeout=5)
     self.assertTrue(response is not None, 
@@ -474,7 +472,7 @@
 
 def verify_tablestats(self,expect_lookup=None,expect_match=None,expect_active=None):
 
-    stat_req = message.table_stats_request()
+    stat_req = ofp.message.table_stats_request()
     
     for i in range(0,100):
 
@@ -518,7 +516,7 @@
 # Issue Strict Delete 
         
     #Create flow_mod message, command DELETE_STRICT
-    msg4 = message.flow_mod()
+    msg4 = ofp.message.flow_mod()
     msg4.out_port = ofp.OFPP_NONE
     msg4.command = ofp.OFPFC_DELETE_STRICT
     msg4.buffer_id = 0xffffffff
@@ -535,7 +533,7 @@
 # Issue Non_Strict Delete 
         
     #Create flow_mod message, command DELETE
-    msg6 = message.flow_mod()
+    msg6 = ofp.message.flow_mod()
     msg6.out_port = ofp.OFPP_NONE
     msg6.command = ofp.OFPFC_DELETE
     msg6.buffer_id = 0xffffffff
@@ -574,7 +572,7 @@
 
     cache_supported_actions = None
     if cache_supported_actions is None or not use_cache:
-        request = message.features_request()
+        request = ofp.message.features_request()
         (reply, pkt) = parent.controller.transact(request)
         parent.assertTrue(reply is not None, "Did not get response to ftr req")
         cache_supported_actions = reply.actions
diff --git a/tests/actions.py b/tests/actions.py
index ef323a0..522918a 100644
--- a/tests/actions.py
+++ b/tests/actions.py
@@ -15,9 +15,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 
@@ -51,7 +49,7 @@
         match.wildcards=ofp.OFPFW_ALL
         match.in_port = of_ports[0]
         
-        msg = message.flow_mod()
+        msg = ofp.message.flow_mod()
         msg.out_port = ofp.OFPP_NONE
         msg.command = ofp.OFPFC_ADD
         msg.buffer_id = 0xffffffff
@@ -87,7 +85,7 @@
         logging.info("Expecting Features Reply with supported actions")
 
         # Sending Features_Request
-        request = message.features_request()
+        request = ofp.message.features_request()
         (reply, pkt) = self.controller.transact(request)
         self.assertTrue(reply is not None, "Failed to get any reply")
         self.assertEqual(reply.header.type, ofp.OFPT_FEATURES_REPLY,'Response is not Features_reply')
@@ -144,7 +142,7 @@
         #Create a packet
         pkt = simple_tcp_packet()
         match = parse.packet_to_flow_match(pkt)
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         #Delete all flows 
         delete_all_flows(self.controller)
@@ -152,7 +150,7 @@
         match.in_port = ingress_port
 
         #Create a flow mod with action.port = OFPP_ALL
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         request.match.wildcards = ofp.OFPFW_ALL&~ofp.OFPFW_IN_PORT
         act.port = ofp.OFPP_ALL
@@ -195,7 +193,7 @@
         #Create packet
         pkt = simple_tcp_packet()
         match = parse.packet_to_flow_match(pkt)
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for ingress_port in of_ports:
             #Delete all flows 
@@ -204,7 +202,7 @@
             match.in_port = ingress_port
             
             #Create a flow mod message
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             act.port = ofp.OFPP_CONTROLLER
             request.actions.add(act)
@@ -247,7 +245,7 @@
         #Clear switch state
         pkt = simple_tcp_packet()
         match = parse.packet_to_flow_match(pkt)
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for ingress_port in of_ports:
             #Delete the flows
@@ -255,7 +253,7 @@
 
             match.in_port = ingress_port
             #Create flow mod message
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             act.port = ofp.OFPP_LOCAL
             request.actions.add(act)
@@ -295,7 +293,7 @@
         #Create a packet
         pkt = simple_tcp_packet()
         match = parse.packet_to_flow_match(pkt)
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         #Delete all flows 
         delete_all_flows(self.controller)
@@ -303,7 +301,7 @@
         match.in_port = ingress_port
 
         #Create a flow mod with action.port = OFPP_ALL
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         request.match.wildcards = ofp.OFPFW_ALL&~ofp.OFPFW_IN_PORT
         act.port = ofp.OFPP_FLOOD
@@ -345,7 +343,7 @@
         #Create a packet
         pkt = simple_tcp_packet()
         match = parse.packet_to_flow_match(pkt)
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         #Delete the flows
         delete_all_flows(self.controller)
@@ -353,7 +351,7 @@
         match.in_port = ingress_port
 
         # Create a flow mod message
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         act.port = ofp.OFPP_IN_PORT
             
@@ -396,10 +394,10 @@
         (pkt,match) = wildcard_all(self,of_ports)
         
         #Create a packet out message
-        pkt_out =message.packet_out();
+        pkt_out =ofp.message.packet_out();
         pkt_out.data = str(pkt)
         pkt_out.in_port = of_ports[0]
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = ofp.OFPP_TABLE
         pkt_out.actions.add(act)
         self.controller.message_send(pkt_out)
@@ -442,7 +440,7 @@
         pkt = simple_tcp_packet(pktlen=len_wo_vid)
         exp_pkt = simple_tcp_packet(pktlen=len_w_vid, dl_vlan_enable=True, 
                                     dl_vlan=new_vid,dl_vlan_pcp=0)
-        vid_act = action.action_set_vlan_vid()
+        vid_act = ofp.action.action_set_vlan_vid()
         vid_act.vlan_vid = new_vid
 
         #Insert flow with action -- set vid , Send packet matching the flow, Verify recieved packet is expected packet
@@ -479,7 +477,7 @@
         new_vid = 3
         pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=old_vid)
         exp_pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=new_vid)
-        vid_act = action.action_set_vlan_vid()
+        vid_act = ofp.action.action_set_vlan_vid()
         vid_act.vlan_vid = new_vid
         
         #Insert flow with action -- set vid , Send packet matching the flow.Verify recieved packet is expected packet.
@@ -517,7 +515,7 @@
         pktlen = 64 if config["minsize"] < 64 else config["minsize"]
         pkt = simple_tcp_packet(pktlen=pktlen)
         exp_pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=vlan_id,dl_vlan_pcp=vlan_pcp, pktlen=pktlen + 4)
-        act = action.action_set_vlan_pcp()
+        act = ofp.action.action_set_vlan_pcp()
         act.vlan_pcp = vlan_pcp
 
         #Insert flow with action -- set vLAN priority, Send packet matching the flow, Verify recieved packet is expected packet
@@ -556,7 +554,7 @@
         new_vlan_pcp = 3
         pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=vid, dl_vlan_pcp=old_vlan_pcp)
         exp_pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=vid, dl_vlan_pcp=new_vlan_pcp)
-        vid_act = action.action_set_vlan_pcp()
+        vid_act = ofp.action.action_set_vlan_pcp()
         vid_act.vlan_pcp = new_vlan_pcp
 
         #Insert flow with action -- set vLAN priority, Send tagged packet matching the flow, Verify recieved packet is expected packet
diff --git a/tests/bsn_ipmask.py b/tests/bsn_ipmask.py
index b26fe3c..e640089 100644
--- a/tests/bsn_ipmask.py
+++ b/tests/bsn_ipmask.py
@@ -7,7 +7,6 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.base_tests as base_tests
 
 from oftest.testutils import *
@@ -48,7 +47,7 @@
         given wildcard index
         """
         logging.info("Setting index %d to mask is %s" % (index, mask))
-        m = message.vendor()
+        m = ofp.message.vendor()
         m.vendor = 0x005c16c7
         m.data = struct.pack("!LBBBBL", 0, index, 0, 0, 0, mask)
         self.controller.message_send(m)
@@ -58,7 +57,7 @@
         Use the BSN_GET_IP_MASK_REQUEST vendor command to get the current IP mask
         for the given wildcard index
         """
-        m = message.vendor()
+        m = ofp.message.vendor()
         m.vendor = 0x005c16c7
         m.data = struct.pack( "!LBBBBL", 1, index, 0, 0, 0, 0 )
         self.controller.message_send(m)
diff --git a/tests/bsn_mirror.py b/tests/bsn_mirror.py
index 1a114f9..8eb4016 100644
--- a/tests/bsn_mirror.py
+++ b/tests/bsn_mirror.py
@@ -7,14 +7,11 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
-import oftest.action as action
-import oftest.action_list as action_list
 import oftest.base_tests as base_tests
 
 from oftest.testutils import *
 
-class bsn_action_mirror(action.action_vendor):
+class bsn_action_mirror(ofp.action.action_vendor):
     def __init__(self):
         self.type = ofp.OFPAT_VENDOR
         self.len = 24
@@ -87,7 +84,7 @@
         Use the BSN_SET_MIRRORING vendor command to enable/disable
         mirror action support
         """
-        m = message.vendor()
+        m = ofp.message.vendor()
         m.vendor = 0x005c16c7
         m.data = struct.pack("!LBBBB", 3, enabled, 0, 0, 0)
         self.controller.message_send(m)
@@ -97,7 +94,7 @@
         Use the BSN_GET_MIRRORING_REQUEST vendor command to get the
         enabled/disabled state of mirror action support
         """
-        m = message.vendor()
+        m = ofp.message.vendor()
         m.vendor = 0x005c16c7
         m.data = struct.pack("!LBBBB", 4, 0, 0, 0, 0)
         self.controller.message_send(m)
@@ -117,7 +114,7 @@
 
         logging.info("Checking that mirror ports are not reported")
         self.assertEqual(bool(self.bsn_get_mirroring()), False)
-        m, r = self.controller.transact(message.features_request(), 2)
+        m, r = self.controller.transact(ofp.message.features_request(), 2)
         p = dict([(pt.port_no, pt) for pt in m.ports])
         self.assertFalse(mirror_ports[0] in p or mirror_ports[1] in p,
                          "Mirror port in features reply")
@@ -127,7 +124,7 @@
 
         logging.info("Checking that mirror ports are reported")
         self.assertEqual(bool(self.bsn_get_mirroring()), True)
-        m, r = self.controller.transact(message.features_request(), 2)
+        m, r = self.controller.transact(ofp.message.features_request(), 2)
         p = dict([(pt.port_no, pt) for pt in m.ports])
         self.assertTrue(mirror_ports[0] in p and mirror_ports[1] in p,
                         "Mirror port not in features reply")
@@ -142,9 +139,9 @@
         act2 = bsn_action_mirror()
         act2.dest_port = mirror_ports[1]
         act2.copy_stage = 0
-        act3 = action.action_output()
+        act3 = ofp.action.action_output()
         act3.port = ports[1]
-        flow_mod = message.flow_mod()
+        flow_mod = ofp.message.flow_mod()
         flow_mod.match = match
         flow_mod.actions.add(act1)
         flow_mod.actions.add(act2)
diff --git a/tests/bsn_shell.py b/tests/bsn_shell.py
index cc06ebe..8886c80 100644
--- a/tests/bsn_shell.py
+++ b/tests/bsn_shell.py
@@ -7,7 +7,6 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.base_tests as base_tests
 
 from oftest.testutils import *
@@ -23,7 +22,7 @@
         Use the BSN_SHELL_COMMAND vendor command to run the given command
         and receive the output
         """
-        m = message.vendor()
+        m = ofp.message.vendor()
         m.vendor = 0x005c16c7
         m.data = struct.pack("!LL", 6, 0) + cmd
         rc = self.controller.message_send(m)
diff --git a/tests/caps.py b/tests/caps.py
index 9621923..8d7779e 100644
--- a/tests/caps.py
+++ b/tests/caps.py
@@ -10,9 +10,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 
@@ -38,7 +36,7 @@
         break;
     match.in_port = port
     match.nw_src = 1
-    request = message.flow_mod()
+    request = ofp.message.flow_mod()
     count_check = 101  # fixme:  better way to determine this.
     if is_exact:
         match.wildcards = 0
@@ -49,7 +47,7 @@
     request.buffer_id = 0xffffffff      # set to NONE
     logging.info(request.show())
 
-    tstats = message.table_stats_request()
+    tstats = ofp.message.table_stats_request()
     try:  # Determine the table index to check (or "all")
         table_idx = config["caps_table_idx"]
     except:
diff --git a/tests/counters.py b/tests/counters.py
index 1c35dd7..afa1961 100644
--- a/tests/counters.py
+++ b/tests/counters.py
@@ -12,9 +12,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 import time
@@ -122,7 +120,7 @@
         (pkt,match) = wildcard_all_except_ingress(self,of_ports)
     
         #Create flow_stats request 
-        stat_req = message.flow_stats_request()
+        stat_req = ofp.message.flow_stats_request()
         stat_req.match= match
         stat_req.table_id = 0xff
         stat_req.out_port = ofp.OFPP_NONE
diff --git a/tests/cxn.py b/tests/cxn.py
index 37c2e52..1a00f1f 100644
--- a/tests/cxn.py
+++ b/tests/cxn.py
@@ -13,9 +13,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 
 from oftest.testutils import *
 
@@ -90,7 +88,7 @@
         logging.info("TCP Connected " + 
                      str(self.controllers[0].switch_addr))
         logging.info("Sending hello")
-        self.controllers[0].message_send(message.hello())
+        self.controllers[0].message_send(ofp.message.hello())
 
         logging.info("Features request not sent, waiting for timeout")
 
@@ -163,7 +161,7 @@
                     if con.cstate == 0:
                         logging.info(condesc + "Sending hello to " +
                                      str(con.switch_addr))
-                        con.message_send(message.hello())
+                        con.message_send(ofp.message.hello())
                         con.cstate = 1
                         con.count = 0
                     elif con.cstate == 1:
@@ -185,7 +183,7 @@
                     elif con.cstate == 2:
                         logging.info(condesc + "Sending features request to " +
                                      str(con.switch_addr))
-                        con.message_send(message.features_request())
+                        con.message_send(ofp.message.features_request())
                         con.cstate = 3
                         con.count = 0
                     elif con.cstate == 3:
diff --git a/tests/default_drop.py b/tests/default_drop.py
index 42261e5..574593f 100644
--- a/tests/default_drop.py
+++ b/tests/default_drop.py
@@ -7,9 +7,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.base_tests as base_tests
 
 from oftest.testutils import *
diff --git a/tests/detailed_contr_sw_messages.py b/tests/detailed_contr_sw_messages.py
index e4ebcfb..7f2787e 100644
--- a/tests/detailed_contr_sw_messages.py
+++ b/tests/detailed_contr_sw_messages.py
@@ -12,9 +12,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 
@@ -54,14 +52,14 @@
         match3.wildcards = ofp.OFPFW_ALL-ofp.OFPFW_IN_PORT
         match3.in_port = of_ports[0]
 
-        msg3 = message.flow_mod()
+        msg3 = ofp.message.flow_mod()
         msg3.command = ofp.OFPFC_ADD
         msg3.match = match3
         msg3.flags |= ofp.OFPFF_CHECK_OVERLAP
         msg3.cookie = random.randint(0,9007199254740992)
         msg3.buffer_id = 0xffffffff
        
-        act3 = action.action_output()
+        act3 = ofp.action.action_output()
         act3.port = of_ports[1]
         msg3.actions.add(act3)
         self.controller.message_send(msg3)
@@ -175,14 +173,14 @@
         match = parse.packet_to_flow_match(pkt)
         match.in_port = of_ports[0]
         
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         request.command = ofp.OFPFC_ADD
         request.flags = request.flags|ofp.OFPFF_EMERG
         request.hard_timeout =9
         request.idle_timeout =9
         
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = of_ports[1]
         
         request.actions.add(act)
@@ -222,13 +220,13 @@
 
         #Generate a flow-mod,command OFPC_MODIFY 
 
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.command = ofp.OFPFC_MODIFY
         request.match.wildcards = ofp.OFPFW_ALL-ofp.OFPFW_IN_PORT
         request.match.in_port = of_ports[0]
         request.cookie = random.randint(0,9007199254740992)
         request.buffer_id = 0xffffffff
-        act3 = action.action_output()
+        act3 = ofp.action.action_output()
         act3.port = of_ports[1]
         request.actions.add(act3)
 
@@ -339,7 +337,7 @@
         logging.info("Expecting switch to ignore the command , without generating errors")
 
         # Issue a delete command 
-        msg = message.flow_mod()
+        msg = ofp.message.flow_mod()
         msg.match.wildcards = ofp.OFPFW_ALL
         msg.out_port = ofp.OFPP_NONE
         msg.command = ofp.OFPFC_DELETE
@@ -391,7 +389,7 @@
                         'Received flow removed message for the flow with flow_rem flag not set')
         
         # Insert another flow F' with OFPFF_SEND_FLOW_REM flag set.
-        msg9 = message.flow_mod()
+        msg9 = ofp.message.flow_mod()
         msg9.match.wildcards = ofp.OFPFW_ALL
         msg9.cookie = random.randint(0,9007199254740992)
         msg9.buffer_id = 0xffffffff
@@ -434,11 +432,11 @@
         pkt = simple_tcp_packet()
         match = parse.packet_to_flow_match(pkt)
         match.in_port = of_ports[0]
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         request.command = ofp.OFPFC_ADD
         request.flags = request.flags|ofp.OFPFF_EMERG|ofp.OFPFF_SEND_FLOW_REM
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = of_ports[1]
         request.actions.add(act)
 
@@ -566,7 +564,7 @@
         verify_tablestats(self,expect_active=1)
 
         #Send delete command matching the flow-1 but with contraint out_port = of_port[2]
-        msg7 = message.flow_mod()
+        msg7 = ofp.message.flow_mod()
         msg7.out_port = of_ports[2]
         msg7.command = ofp.OFPFC_DELETE
         msg7.buffer_id = 0xffffffff
@@ -582,7 +580,7 @@
         logging.info("Expecting switch to delete the flow")
 
         #Send Delete command with contraint out_port = of_ports[1]
-        msg7 = message.flow_mod()
+        msg7 = ofp.message.flow_mod()
         msg7.out_port = of_ports[1]
         msg7.command = ofp.OFPFC_DELETE
         msg7.buffer_id = 0xffffffff
@@ -614,7 +612,7 @@
         logging.info("Expecting the flow entry to delete with given idle_timeout")
 
         #Insert a flow entry with idle_timeout=1.Send_Flow_Rem flag set
-        msg9 = message.flow_mod()
+        msg9 = ofp.message.flow_mod()
         msg9.match.wildcards = ofp.OFPFW_ALL
         msg9.cookie = random.randint(0,9007199254740992)
         msg9.buffer_id = 0xffffffff
@@ -696,7 +694,7 @@
         logging.info("Expecting the flow entry to delete with given hard_timeout")
 
         # Insert a flow entry with hardtimeout=1 and send_flow_removed flag set
-        msg9 = message.flow_mod()
+        msg9 = ofp.message.flow_mod()
         msg9.match.wildcards = ofp.OFPFW_ALL
         msg9.cookie = random.randint(0,9007199254740992)
         msg9.buffer_id = 0xffffffff
@@ -747,7 +745,7 @@
         self.assertTrue(match3 is not None, "Could not generate flow match from pkt")
         match3.wildcards = ofp.OFPFW_ALL-ofp.OFPFW_IN_PORT
         match3.in_port = of_ports[0]
-        msg3 = message.flow_mod()
+        msg3 = ofp.message.flow_mod()
         msg3.out_port = of_ports[2] # ignored by flow add,flow modify 
         msg3.command = ofp.OFPFC_ADD
         msg3.cookie = random.randint(0,9007199254740992)
@@ -755,7 +753,7 @@
         msg3.hard_timeout = 1
         msg3.buffer_id = 0xffffffff
         msg3.match = match3
-        act3 = action.action_output()
+        act3 = ofp.action.action_output()
         act3.port = of_ports[1]
         msg3.actions.add(act3)
 
diff --git a/tests/flow_expire.py b/tests/flow_expire.py
index 6b497cc..f5b0773 100644
--- a/tests/flow_expire.py
+++ b/tests/flow_expire.py
@@ -12,9 +12,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 
@@ -44,7 +42,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         of_ports = config["port_map"].keys()
         of_ports.sort()
@@ -57,7 +55,7 @@
         
         match.in_port = ingress_port
         
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         request.cookie = random.randint(0,9007199254740992)
         request.buffer_id = 0xffffffff
diff --git a/tests/flow_matches.py b/tests/flow_matches.py
index 4c6df05..56fd3a7 100644
--- a/tests/flow_matches.py
+++ b/tests/flow_matches.py
@@ -13,9 +13,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 import time
diff --git a/tests/flow_query.py b/tests/flow_query.py
index ba59812..0bbf3ee 100644
--- a/tests/flow_query.py
+++ b/tests/flow_query.py
@@ -68,9 +68,7 @@
 from oftest import config
 import oftest.controller  as controller
 import ofp
-import oftest.message     as message
 import oftest.dataplane   as dataplane
-import oftest.action      as action
 import oftest.action_list as action_list
 import oftest.parse       as parse
 import pktact
@@ -528,38 +526,38 @@
                 pass                    # OUTPUT actions must come last
             elif a == ofp.OFPAT_SET_VLAN_VID:
                if not strip_vlanf:
-                  act = action.action_set_vlan_vid()
+                  act = ofp.action.action_set_vlan_vid()
                   act.vlan_vid = fi.rand_vlan()
                   set_vlanf = True
             elif a == ofp.OFPAT_SET_VLAN_PCP:
                if not strip_vlanf:
-                  act = action.action_set_vlan_pcp()
+                  act = ofp.action.action_set_vlan_pcp()
                   act.vlan_pcp = random.randint(0, (1 << 3) - 1)
                   set_vlanf = True
             elif a == ofp.OFPAT_STRIP_VLAN:
                if not set_vlanf:
-                  act = action.action_strip_vlan()
+                  act = ofp.action.action_strip_vlan()
                   strip_vlanf = True
             elif a == ofp.OFPAT_SET_DL_SRC:
-                act = action.action_set_dl_src()
+                act = ofp.action.action_set_dl_src()
                 act.dl_addr = fi.rand_dl_addr()
             elif a == ofp.OFPAT_SET_DL_DST:
-                act = action.action_set_dl_dst()
+                act = ofp.action.action_set_dl_dst()
                 act.dl_addr = fi.rand_dl_addr()
             elif a == ofp.OFPAT_SET_NW_SRC:
-                act = action.action_set_nw_src()
+                act = ofp.action.action_set_nw_src()
                 act.nw_addr = fi.rand_ip_addr()
             elif a == ofp.OFPAT_SET_NW_DST:
-                act = action.action_set_nw_dst()
+                act = ofp.action.action_set_nw_dst()
                 act.nw_addr = fi.rand_ip_addr()
             elif a == ofp.OFPAT_SET_NW_TOS:
-                act = action.action_set_nw_tos()
+                act = ofp.action.action_set_nw_tos()
                 act.nw_tos = fi.rand_ip_tos()
             elif a == ofp.OFPAT_SET_TP_SRC:
-                act = action.action_set_tp_src()
+                act = ofp.action.action_set_tp_src()
                 act.tp_port = fi.rand_l4_port()
             elif a == ofp.OFPAT_SET_TP_DST:
-                act = action.action_set_tp_dst()
+                act = ofp.action.action_set_tp_dst()
                 act.tp_port = fi.rand_l4_port()
             elif a == ofp.OFPAT_ENQUEUE:
                 pass                    # Enqueue actions must come last
@@ -573,7 +571,7 @@
             # In not forecd, one third of the time, include ENQUEUE actions
             # at end of list
             # At most 1 ENQUEUE action
-            act = action.action_enqueue()
+            act = ofp.action.action_enqueue()
             (act.port, act.queue_id) = rand_pick(valid_queues)
             self.actions.add(act)
         if (((1 << ofp.OFPAT_OUTPUT) & actions_force) != 0 \
@@ -588,7 +586,7 @@
                 else random.randint(1, len(valid_ports))
             port_idxs = port_idxs[0 : n]
             for pi in port_idxs:
-                act = action.action_output()
+                act = ofp.action.action_output()
                 act.port = valid_ports[pi]
                 if act.port != ofp.OFPP_IN_PORT \
                    or wildcard_get(self.match.wildcards, ofp.OFPFW_IN_PORT) == 0:
@@ -638,45 +636,45 @@
                 port_idxs = shuffle(range(len(valid_ports)))
                 port_idxs = port_idxs[0 : random.randint(1, len(valid_ports))]
                 for pi in port_idxs:
-                    act = action.action_output()
+                    act = ofp.action.action_output()
                     act.port = valid_ports[pi]
                     self.actions.add(act)
             elif a == ofp.OFPAT_SET_VLAN_VID:
-                act = action.action_set_vlan_vid()
+                act = ofp.action.action_set_vlan_vid()
                 act.vlan_vid = fi.rand_vlan()
                 self.actions.add(act)
             elif a == ofp.OFPAT_SET_VLAN_PCP:
-                act = action.action_set_vlan_pcp()
+                act = ofp.action.action_set_vlan_pcp()
                 act.vlan_pcp = random.randint(0, (1 << 3) - 1)
             elif a == ofp.OFPAT_STRIP_VLAN:
-                act = action.action_strip_vlan()
+                act = ofp.action.action_strip_vlan()
                 self.actions.add(act)
             elif a == ofp.OFPAT_SET_DL_SRC:
-                act = action.action_set_dl_src()
+                act = ofp.action.action_set_dl_src()
                 act.dl_addr = fi.rand_dl_addr()
                 self.actions.add(act)
             elif a == ofp.OFPAT_SET_DL_DST:
-                act = action.action_set_dl_dst()
+                act = ofp.action.action_set_dl_dst()
                 act.dl_addr = fi.rand_dl_addr()
                 self.actions.add(act)
             elif a == ofp.OFPAT_SET_NW_SRC:
-                act = action.action_set_nw_src()
+                act = ofp.action.action_set_nw_src()
                 act.nw_addr = fi.rand_ip_addr()
                 self.actions.add(act)
             elif a == ofp.OFPAT_SET_NW_DST:
-                act = action.action_set_nw_dst()
+                act = ofp.action.action_set_nw_dst()
                 act.nw_addr = fi.rand_ip_addr()
                 self.actions.add(act)
             elif a == ofp.OFPAT_SET_NW_TOS:
-                act = action.action_set_nw_tos()
+                act = ofp.action.action_set_nw_tos()
                 act.nw_tos = fi.rand_ip_tos()
                 self.actions.add(act)
             elif a == ofp.OFPAT_SET_TP_SRC:
-                act = action.action_set_tp_src()
+                act = ofp.action.action_set_tp_src()
                 act.tp_port = fi.rand_l4_port()
                 self.actions.add(act)
             elif a == ofp.OFPAT_SET_TP_DST:
-                act = action.action_set_tp_dst()
+                act = ofp.action.action_set_tp_dst()
                 act.tp_port = fi.rand_l4_port()
                 self.actions.add(act)
             elif a == ofp.OFPAT_ENQUEUE:
@@ -686,7 +684,7 @@
                 qidxs = shuffle(range(len(valid_queues)))
                 qidxs = qidxs[0 : random.randint(1, len(valid_queues))]
                 for qi in qidxs:
-                    act = action.action_enqueue()
+                    act = ofp.action.action_enqueue()
                     (act.port, act.queue_id) = valid_queues[qi]
                     self.actions.add(act)
 
@@ -1228,7 +1226,7 @@
 
     def features_get(self):
         # Get switch features
-        request = message.features_request()
+        request = ofp.message.features_request()
         (self.sw_features, pkt) = self.controller.transact(request)
         if self.sw_features is None:
             logging.error("Get switch features failed")
@@ -1270,7 +1268,7 @@
 
     def tbl_stats_get(self):
         # Get table stats
-        request = message.table_stats_request()
+        request = ofp.message.table_stats_request()
         (self.tbl_stats, pkt) = self.controller.transact(request)
         if self.tbl_stats is None:
             logging.error("Get table stats failed")
@@ -1297,7 +1295,7 @@
 
     def queue_stats_get(self):
         # Get queue stats
-        request = message.queue_stats_request()
+        request = ofp.message.queue_stats_request()
         request.port_no  = ofp.OFPP_ALL
         request.queue_id = ofp.OFPQ_ALL
         (self.queue_stats, pkt) = self.controller.transact(request)
@@ -1325,7 +1323,7 @@
                 )
 
     def flow_stats_get(self, limit = 10000):
-        request = message.flow_stats_request()
+        request = ofp.message.flow_stats_request()
         query_match           = ofp.ofp_match()
         query_match.wildcards = ofp.OFPFW_ALL
         request.match    = query_match
@@ -1355,7 +1353,7 @@
         return (n > 0)
 
     def flow_add(self, flow_cfg, overlapf = False):
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.command     = ofp.OFPFC_ADD
         flow_mod_msg.buffer_id   = 0xffffffff
         flow_cfg.to_flow_mod_msg(flow_mod_msg)
@@ -1371,7 +1369,7 @@
         return True
 
     def flow_mod(self, flow_cfg, strictf):
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.command     = ofp.OFPFC_MODIFY_STRICT if strictf \
                                    else ofp.OFPFC_MODIFY
         flow_mod_msg.buffer_id   = 0xffffffff
@@ -1384,7 +1382,7 @@
         return True
 
     def flow_del(self, flow_cfg, strictf):
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.command     = ofp.OFPFC_DELETE_STRICT if strictf \
                                    else ofp.OFPFC_DELETE
         flow_mod_msg.buffer_id   = 0xffffffff
@@ -1399,7 +1397,7 @@
         return True
 
     def barrier(self):
-        barrier = message.barrier_request()
+        barrier = ofp.message.barrier_request()
         (resp, pkt) = self.controller.transact(barrier, 30)
         return (resp is not None)
 
diff --git a/tests/flow_stats.py b/tests/flow_stats.py
index 25ba005..abd405c 100644
--- a/tests/flow_stats.py
+++ b/tests/flow_stats.py
@@ -13,9 +13,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 
@@ -74,7 +72,7 @@
     """
 
     def verifyStats(self, flow_mod_msg, match, out_port, test_timeout, packet_count):
-        stat_req = message.flow_stats_request()
+        stat_req = ofp.message.flow_stats_request()
         stat_req.match = match
         stat_req.table_id = 0xff
         stat_req.out_port = out_port
@@ -127,7 +125,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         # build flow
         ingress_port = of_ports[0];
@@ -135,7 +133,7 @@
         logging.info("Ingress " + str(ingress_port) + 
                        " to egress " + str(egress_port))
         match.in_port = ingress_port
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.match = copy.deepcopy(match)
         flow_mod_msg.cookie = random.randint(0,9007199254740992)
         flow_mod_msg.buffer_id = 0xffffffff
@@ -187,13 +185,13 @@
                         "Could not generate flow match from pkt")
         match.in_port = ingress_port
         
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.match = match
         flow_mod_msg.cookie = random.randint(0,9007199254740992)
         flow_mod_msg.buffer_id = 0xffffffff
         flow_mod_msg.idle_timeout = 0
         flow_mod_msg.hard_timeout = 0
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = egress_port
         flow_mod_msg.actions.add(act)
 
@@ -217,7 +215,7 @@
         return total_packets
 
     def verifyStats(self, match, out_port, test_timeout, packet_count):
-        stat_req = message.flow_stats_request()
+        stat_req = ofp.message.flow_stats_request()
         stat_req.match = match
         stat_req.table_id = 0xff
         stat_req.out_port = out_port
@@ -312,13 +310,13 @@
                         "Could not generate flow match from pkt")
         match.in_port = ingress_port
         
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.match = match
         flow_mod_msg.cookie = random.randint(0,9007199254740992)
         flow_mod_msg.buffer_id = 0xffffffff
         flow_mod_msg.idle_timeout = 0
         flow_mod_msg.hard_timeout = 0
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = egress_port
         flow_mod_msg.actions.add(act)
 
@@ -329,7 +327,7 @@
 
     def verifyAggFlowStats(self, match, out_port, test_timeout, 
                            flow_count, packet_count):
-        stat_req = message.aggregate_stats_request()
+        stat_req = ofp.message.aggregate_stats_request()
         stat_req.match = match
         stat_req.table_id = 0xff
         stat_req.out_port = out_port
@@ -415,7 +413,7 @@
         delete_all_flows(self.controller)
         match = ofp.ofp_match()
         match.wildcards = 0
-        stat_req = message.flow_stats_request()
+        stat_req = ofp.message.flow_stats_request()
         stat_req.match = match
         stat_req.table_id = 0xff
         stat_req.out_port = ofp.OFPP_NONE
@@ -435,7 +433,7 @@
         delete_all_flows(self.controller)
         match = ofp.ofp_match()
         match.wildcards = 0
-        stat_req = message.aggregate_stats_request()
+        stat_req = ofp.message.aggregate_stats_request()
         stat_req.match = match
         stat_req.table_id = 0xff
         stat_req.out_port = ofp.OFPP_NONE
@@ -476,7 +474,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None,
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         # build flow
         ingress_port = of_ports[0];
@@ -484,7 +482,7 @@
         logging.info("Ingress " + str(ingress_port) +
                        " to egress " + str(egress_port))
         match.in_port = ingress_port
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.match = copy.deepcopy(match)
         flow_mod_msg.cookie = random.randint(0,9007199254740992)
         flow_mod_msg.buffer_id = 0xffffffff
diff --git a/tests/load.py b/tests/load.py
index a57b51f..066f553 100644
--- a/tests/load.py
+++ b/tests/load.py
@@ -21,9 +21,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 import time
@@ -60,17 +58,17 @@
         match = packet_to_flow_match(self, pkt)
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         match.in_port = lb_port
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = lb_port + 1
 
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         request.hard_timeout = 2 * barrier_count
 
         request.buffer_id = 0xffffffff
         request.actions.add(act)
 
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = ofp.OFPP_CONTROLLER
         request.actions.add(act)
 
@@ -78,10 +76,10 @@
         do_barrier(self.controller)
 
         # Create packet out and send to port lb_port + 1
-        msg = message.packet_out()
+        msg = ofp.message.packet_out()
         msg.in_port = lb_port
         msg.data = str(pkt)
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = lb_port + 1
         msg.actions.add(act)
         logging.info("Sleeping before starting storm")
@@ -167,10 +165,10 @@
                (simple_eth_packet(pktlen=40), "tiny Ethernet packet")]:
 
                logging.info("PKT OUT test with %s, port %s" % (opt, dp_port))
-               msg = message.packet_out()
+               msg = ofp.message.packet_out()
                msg.in_port = ofp.OFPP_NONE
                msg.data = str(outpkt)
-               act = action.action_output()
+               act = ofp.action.action_output()
                act.port = dp_port
                msg.actions.add(act)
 
@@ -193,15 +191,15 @@
 class FlowModLoad(base_tests.SimpleProtocol):
 
     def checkBarrier(self):
-        msg, pkt = self.controller.transact(message.barrier_request(), timeout=60)
+        msg, pkt = self.controller.transact(ofp.message.barrier_request(), timeout=60)
         self.assertNotEqual(msg, None, "Barrier failed")
         while self.controller.packets:
            msg = self.controller.packets.pop(0)[0]
-           self.assertNotEqual(msg.header.type, message.OFPT_ERROR,
+           self.assertNotEqual(msg.header.type, ofp.message.OFPT_ERROR,
                                "Error received")
 
     def runTest(self):
-        msg, pkt = self.controller.transact(message.table_stats_request())
+        msg, pkt = self.controller.transact(ofp.message.table_stats_request())
 
         # Some switches report an extremely high max_entries that would cause
         # us to run out of memory attempting to create all the flow-mods.
@@ -215,9 +213,9 @@
             match.wildcards = ofp.OFPFW_ALL & ~ofp.OFPFW_DL_VLAN & ~ofp.OFPFW_DL_DST
             match.dl_vlan = ofp.OFP_VLAN_NONE
             match.dl_dst = [0, 1, 2, 3, i / 256, i % 256]
-            act = action.action_output()
+            act = ofp.action.action_output()
             act.port = ofp.OFPP_CONTROLLER
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.command = ofp.OFPFC_ADD
             request.buffer_id = 0xffffffff
             request.priority = num_flows - i
diff --git a/tests/message_types.py b/tests/message_types.py
index c2427d7..b557b7e 100644
--- a/tests/message_types.py
+++ b/tests/message_types.py
@@ -12,9 +12,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 import time
@@ -36,7 +34,7 @@
 
         #Send Hello message
         logging.info("Sending Hello...")
-        request = message.hello()
+        request = ofp.message.hello()
         request.data = 'OpenFlow Will Rule The World'
         self.controller.message_send(request)
 
@@ -61,7 +59,7 @@
         
         #Send Echo Request 
         logging.info("Sending Echo With Data ...")
-        request = message.echo_request()
+        request = ofp.message.echo_request()
         request.data = 'OpenFlow Will Rule The World'
         self.controller.message_send(request)
 
@@ -96,7 +94,7 @@
 
         #Send Echo Request
         logging.info("Sending a Echo request with a version which is not supported by the switch")
-        request=message.echo_request()
+        request=ofp.message.echo_request()
         request.header.version=0  
         self.controller.message_send(request)
 
@@ -125,7 +123,7 @@
 
         # Sending Features_Request
         logging.info("Sending Features_Request...")
-        request = message.features_request()
+        request = ofp.message.features_request()
         (reply, pkt) = self.controller.transact(request)
         self.assertTrue(reply is not None, "Failed to get any reply")
         self.assertEqual(reply.header.type, ofp.OFPT_FEATURES_REPLY,'Response is not Features_reply')
@@ -207,7 +205,7 @@
        
         #Send get_config_request
         logging.info("Sending Get Config Request...")
-        request = message.get_config_request()
+        request = ofp.message.get_config_request()
         (reply, pkt) = self.controller.transact(request)
 
         #Verify get_config_reply is recieved
@@ -243,7 +241,7 @@
 
         #Send get_config_request -- retrive miss_send_len field
         logging.info("Sending Get Config Request ")
-        request = message.get_config_request()
+        request = ofp.message.get_config_request()
         (reply, pkt) = self.controller.transact(request)
         self.assertTrue(reply is not None, "Failed to get any reply")
         self.assertEqual(reply.header.type, ofp.OFPT_GET_CONFIG_REPLY,'Response is not Config Reply')
@@ -255,7 +253,7 @@
 
         #Send set_config_request --- set a different miss_sen_len field and flag
         logging.info("Sending Set Config Request...")
-        req = message.set_config()
+        req = ofp.message.set_config()
         
         if miss_send_len < 65400 :# Max miss_send len is 65535
             req.miss_send_len = miss_send_len + 100
@@ -275,7 +273,7 @@
 
         #Send get_config_request -- verify change came into effect
         logging.info("Sending Get Config Request...")
-        request = message.get_config_request()
+        request = ofp.message.get_config_request()
 
         (rep, pkt) = self.controller.transact(request)
         self.assertTrue(rep is not None, "Failed to get any reply")
@@ -304,7 +302,7 @@
         miss_send_len = [0 ,32 ,64,100]
         
         for bytes in miss_send_len :
-            req = message.set_config()
+            req = ofp.message.set_config()
             req.miss_send_len = bytes
             self.controller.message_send(req)
             sleep(1)
@@ -360,10 +358,10 @@
         for bytes in max_len :
 
             #Insert a flow entry with action --output to controller
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
-            act = action.action_output()
+            act = ofp.action.action_output()
             act.port = ofp.OFPP_CONTROLLER
             act.max_len = bytes 
             request.actions.add(act)
@@ -407,7 +405,7 @@
 
         #Set miss_send_len field 
         logging.info("Sending  set_config_request to set miss_send_len... ")
-        req = message.set_config()
+        req = ofp.message.set_config()
         req.miss_send_len = 65535
         self.controller.message_send(req)
         sleep(1)
@@ -459,9 +457,9 @@
         match.in_port = of_ports[0]
 
         #Insert a flow entry with action output to controller 
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = ofp.OFPP_CONTROLLER
         act.max_len = 65535 # Send the complete packet and do not buffer
         request.actions.add(act)
@@ -674,7 +672,7 @@
         logging.info("Running DescStatsGet test")
         
         logging.info("Sending stats request")
-        request = message.desc_stats_request()
+        request = ofp.message.desc_stats_request()
         response, pkt = self.controller.transact(request)
         self.assertTrue(response is not None,
                         "Did not get reply for desc stats")
@@ -714,7 +712,7 @@
         of_ports.sort()
         
         logging.info("Sending Queue Config Request ...")
-        request = message.queue_get_config_request()
+        request = ofp.message.queue_get_config_request()
         request.port = of_ports[0]
         response, pkt = self.controller.transact(request)
         self.assertTrue(response is not None,
diff --git a/tests/nicira_role.py b/tests/nicira_role.py
index e8ff88e..24606a2 100644
--- a/tests/nicira_role.py
+++ b/tests/nicira_role.py
@@ -7,7 +7,6 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.base_tests as base_tests
 
 from oftest.testutils import *
@@ -31,7 +30,7 @@
         given wildcard index
         """
         logging.info("Sending role request %s" % role)
-        m = message.vendor()
+        m = ofp.message.vendor()
         m.vendor = NXT_VENDOR
         m.data = struct.pack("!LL", NXT_ROLE_REQUEST, NXT_ROLE_VALUE[role])
         return m
diff --git a/tests/openflow_protocol_messages.py b/tests/openflow_protocol_messages.py
index 81b1e05..18a0396 100644
--- a/tests/openflow_protocol_messages.py
+++ b/tests/openflow_protocol_messages.py
@@ -13,9 +13,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 
@@ -41,7 +39,7 @@
         logging.info("Sending Features_Request")
         logging.info("Expecting Features_Reply")
 
-        request = message.features_request()
+        request = ofp.message.features_request()
         self.controller.message_send(request)
         
         (response, pkt) = self.controller.poll(exp_msg=ofp.OFPT_FEATURES_REPLY,
@@ -69,7 +67,7 @@
         logging.info("Sending OFPT_GET_CONFIG_REQUEST ")
         logging.info("Expecting OFPT_GET_CONFIG_REPLY ")
 
-        request = message.get_config_request()
+        request = ofp.message.get_config_request()
         self.controller.message_send(request)
         
         (response, pkt) = self.controller.poll(exp_msg=ofp.OFPT_GET_CONFIG_REPLY,
@@ -219,9 +217,9 @@
                 (simple_eth_packet(), "simple Ethernet packet"),
                 (simple_eth_packet(pktlen=40), "tiny Ethernet packet")]:
             
-                msg = message.packet_out()
+                msg = ofp.message.packet_out()
                 msg.data = str(outpkt)
-                act = action.action_output()
+                act = ofp.action.action_output()
                 act.port = dp_port
                 msg.actions.add(act)
 
@@ -297,7 +295,7 @@
         logging.info("Expecting a Hello on the control plane with version--1.0.0")
         
         #Send Hello message
-        request = message.hello()
+        request = ofp.message.hello()
         (response, pkt) = self.controller.poll(exp_msg=ofp.OFPT_HELLO,
                                                timeout=1)
         self.assertTrue(response is not None, 
@@ -320,7 +318,7 @@
         logging.info("Expecting a Echo Reply with version--1.0.0 and same xid")
 
         # Send echo_request
-        request = message.echo_request()
+        request = ofp.message.echo_request()
         (response, pkt) = self.controller.transact(request)
         self.assertEqual(response.header.type, ofp.OFPT_ECHO_REPLY,'response is not echo_reply')
         self.assertEqual(request.header.xid, response.header.xid,
@@ -343,7 +341,7 @@
         logging.info("Expecting a Barrier Reply with same xid")
 
         #Send Barrier Request
-        request = message.barrier_request()
+        request = ofp.message.barrier_request()
         (response,pkt) = self.controller.transact(request)
         self.assertEqual(response.header.type, ofp.OFPT_BARRIER_REPLY,'response is not barrier_reply')
         self.assertEqual(request.header.xid, response.header.xid,
diff --git a/tests/pktact.py b/tests/pktact.py
index c965f89..9407292 100644
--- a/tests/pktact.py
+++ b/tests/pktact.py
@@ -22,9 +22,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 import basic # for IterCases
@@ -106,7 +104,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for idx in range(len(of_ports)):
             delete_all_flows(self.controller)
@@ -118,7 +116,7 @@
 
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
 
             request.buffer_id = 0xffffffff
@@ -175,14 +173,14 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None,
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         delete_all_flows(self.controller)
 
         ingress_port = of_ports[0]
         match.in_port = ingress_port
 
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
 
         request.buffer_id = 0xffffffff
@@ -247,13 +245,13 @@
 
         # Get queue stats from switch
         
-        request = message.queue_stats_request()
+        request = ofp.message.queue_stats_request()
         request.port_no  = ofp.OFPP_ALL
         request.queue_id = ofp.OFPQ_ALL
         (queue_stats, p) = self.controller.transact(request)
         self.assertNotEqual(queue_stats, None, "Queue stats request failed")
 
-        act = action.action_enqueue()
+        act = ofp.action.action_enqueue()
 
         for idx in range(len(of_ports)):
             ingress_port = of_ports[idx]
@@ -269,7 +267,7 @@
 
                 match.in_port = ingress_port
                 
-                request = message.flow_mod()
+                request = ofp.message.flow_mod()
                 request.match = match
 
                 request.buffer_id = 0xffffffff
@@ -283,7 +281,7 @@
 
                 # Get current stats for selected egress queue
 
-                request = message.queue_stats_request()
+                request = ofp.message.queue_stats_request()
                 request.port_no  = egress_port
                 request.queue_id = egress_queue_id
                 (qs_before, p) = self.controller.transact(request)
@@ -315,7 +313,7 @@
 
                 # Get current stats for selected egress queue again
 
-                request = message.queue_stats_request()
+                request = ofp.message.queue_stats_request()
                 request.port_no  = egress_port
                 request.queue_id = egress_queue_id
                 (qs_after, p) = self.controller.transact(request)
@@ -369,7 +367,7 @@
 
         # Get queue stats from switch
         
-        request = message.queue_stats_request()
+        request = ofp.message.queue_stats_request()
         request.port_no  = ofp.OFPP_CONTROLLER
         request.queue_id = ofp.OFPQ_ALL
         (queue_stats, p) = self.controller.transact(request)
@@ -378,7 +376,7 @@
             skip_message_emit(self, "Enqueue packet to controller")
             return
 
-        act = action.action_enqueue()
+        act = ofp.action.action_enqueue()
 
         for idx in range(len(of_ports)):
             ingress_port = of_ports[idx]
@@ -398,7 +396,7 @@
 
                 match.in_port = ingress_port
                 
-                request = message.flow_mod()
+                request = ofp.message.flow_mod()
                 request.match = match
 
                 request.buffer_id = 0xffffffff
@@ -412,7 +410,7 @@
 
                 # Get current stats for selected egress queue
 
-                request = message.queue_stats_request()
+                request = ofp.message.queue_stats_request()
                 request.port_no  = egress_port
                 request.queue_id = egress_queue_id
                 (qs_before, p) = self.controller.transact(request)
@@ -454,7 +452,7 @@
 
                 # Get current stats for selected egress queue again
 
-                request = message.queue_stats_request()
+                request = ofp.message.queue_stats_request()
                 request.port_no  = egress_port
                 request.queue_id = egress_queue_id
                 (qs_after, p) = self.controller.transact(request)
@@ -503,7 +501,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for idx in range(len(of_ports)):
             delete_all_flows(self.controller)
@@ -517,7 +515,7 @@
 
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
             act.port = egress_port1
@@ -561,7 +559,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for ingress_port in of_ports:
             delete_all_flows(self.controller)
@@ -570,7 +568,7 @@
                            " all non-ingress ports")
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
             for egress_port in of_ports:
@@ -613,7 +611,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for ingress_port in of_ports:
             delete_all_flows(self.controller)
@@ -621,7 +619,7 @@
             logging.info("Ingress " + str(ingress_port) + " to all ports")
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
             for egress_port in of_ports:
@@ -661,7 +659,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for of_port in of_ports:
             # Clear relevant bits that might block ports
@@ -677,7 +675,7 @@
             logging.info("Ingress " + str(ingress_port) + " to all ports")
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
             act.port = ofp.OFPP_FLOOD
@@ -715,7 +713,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for ingress_port in of_ports:
             delete_all_flows(self.controller)
@@ -723,7 +721,7 @@
             logging.info("Ingress " + str(ingress_port) + " to all ports")
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
             act.port = ofp.OFPP_FLOOD
@@ -760,7 +758,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for ingress_port in of_ports:
             delete_all_flows(self.controller)
@@ -768,7 +766,7 @@
             logging.info("Ingress " + str(ingress_port) + " to all ports")
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
             act.port = ofp.OFPP_ALL
@@ -806,7 +804,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         for ingress_port in of_ports:
             delete_all_flows(self.controller)
@@ -814,7 +812,7 @@
             logging.info("Ingress " + str(ingress_port) + " to all ports")
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
             act.port = ofp.OFPP_ALL
@@ -853,7 +851,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         # Clear OFPPC_NO_FLOOD on each port
         for of_port in of_ports:
@@ -873,7 +871,7 @@
 
             match.in_port = ingress_port
 
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.match = match
             request.buffer_id = 0xffffffff
             act.port = ofp.OFPP_FLOOD
@@ -1265,7 +1263,7 @@
         pkt = simple_tcp_packet(pktlen=len)
         exp_pkt = simple_tcp_packet(pktlen=len_w_vid, dl_vlan_enable=True, 
                                     dl_vlan=new_vid)
-        vid_act = action.action_set_vlan_vid()
+        vid_act = ofp.action.action_set_vlan_vid()
         vid_act.vlan_vid = new_vid
 
         flow_match_test(self, config["port_map"], pkt=pkt, 
@@ -1320,7 +1318,7 @@
 
         pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=old_vid)
         exp_pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=new_vid)
-        vid_act = action.action_set_vlan_vid()
+        vid_act = ofp.action.action_set_vlan_vid()
         vid_act.vlan_vid = new_vid
 
         flow_match_test(self, config["port_map"], pkt=pkt, exp_pkt=exp_pkt,
@@ -1337,7 +1335,7 @@
 
 class ModifyVIDWithTagMatchWildcarded(BaseMatchCase):
     """
-    With vlan ID and priority wildcarded, perform SET_VLAN_VID action.
+    With vlan ID and priority wildcarded, perform SET_VLAN_VID ofp.action.
     The same flow should match on both untagged and tagged packets.
     """
     def runTest(self):
@@ -1364,7 +1362,7 @@
                                     dl_vlan=new_vid)
         wildcards = (required_wildcards(self) | ofp.OFPFW_DL_VLAN |
                      ofp.OFPFW_DL_VLAN_PCP)
-        vid_act = action.action_set_vlan_vid()
+        vid_act = ofp.action.action_set_vlan_vid()
         vid_act.vlan_vid = new_vid
         request = flow_msg_create(self, untagged_pkt, ing_port=ing_port, 
                                   wildcards=wildcards, egr_ports=egr_ports,
@@ -1396,7 +1394,7 @@
 
         pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=vid, dl_vlan_pcp=old_vlan_pcp)
         exp_pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=vid, dl_vlan_pcp=new_vlan_pcp)
-        vid_act = action.action_set_vlan_pcp()
+        vid_act = ofp.action.action_set_vlan_pcp()
         vid_act.vlan_pcp = new_vlan_pcp
 
         flow_match_test(self, config["port_map"], pkt=pkt, exp_pkt=exp_pkt,
@@ -1418,7 +1416,7 @@
         pkt = simple_tcp_packet(pktlen=len_w_vid, dl_vlan_enable=True, 
                                 dl_vlan=old_vid)
         exp_pkt = simple_tcp_packet(pktlen=len)
-        vid_act = action.action_strip_vlan()
+        vid_act = ofp.action.action_strip_vlan()
 
         flow_match_test(self, config["port_map"], pkt=pkt, exp_pkt=exp_pkt,
                         action_list=[vid_act])
@@ -1442,7 +1440,7 @@
         exp_pkt = simple_tcp_packet(pktlen=len_untagged)
         wildcards = (required_wildcards(self) | ofp.OFPFW_DL_VLAN |
                      ofp.OFPFW_DL_VLAN_PCP)
-        vid_act = action.action_strip_vlan()
+        vid_act = ofp.action.action_strip_vlan()
 
         flow_match_test(self, config["port_map"], 
                         wildcards=wildcards,
@@ -1751,8 +1749,8 @@
         logging.info("Running flow toggle with %d flows, %d iterations" %
                        (flow_count, iter_count))
         acts = []
-        acts.append(action.action_output())
-        acts.append(action.action_output())
+        acts.append(ofp.action.action_output())
+        acts.append(ofp.action.action_output())
     
         of_ports = config["port_map"].keys()
         if len(of_ports) < 3:
@@ -1771,7 +1769,7 @@
         for toggle in range(2):
             for f_idx in range(flow_count):
                 pkt = simple_tcp_packet(tcp_sport=f_idx)
-                msg = message.flow_mod()
+                msg = ofp.message.flow_mod()
                 match = packet_to_flow_match(self, pkt)
                 match.in_port = of_ports[2]
                 match.wildcards = wildcards
@@ -1943,11 +1941,11 @@
                     else:
                         new = ~orig & mask
                     setattr(match, field, new)
-                request = message.flow_mod()
+                request = ofp.message.flow_mod()
                 request.match = match
                 request.buffer_id = 0xffffffff
                 request.priority = priority
-                act = action.action_output()
+                act = ofp.action.action_output()
                 act.port = output_port
                 request.actions.add(act)
                 logging.info("Inserting flow")
@@ -2073,7 +2071,7 @@
 
         match.in_port = ingress_port
 
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         request.priority = 1
 
@@ -2087,13 +2085,13 @@
 
         # This flow speeds up negative tests
         logging.info("Inserting catch-all flow")
-        request2 = message.flow_mod()
+        request2 = ofp.message.flow_mod()
         request2.match = self.createMatch()
         request2.match.wildcards &= ~ofp.OFPFW_IN_PORT
         request2.match.in_port = ingress_port
 
         request2.priority = 0
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = ofp.OFPP_IN_PORT
         request2.actions.add(act)
         self.controller.message_send(request2)
@@ -2183,7 +2181,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         
         def testPacket(title, pkt, result):
-            act = action.action_output()
+            act = ofp.action.action_output()
             pkts = [
                 [title, pkt, result]
             ]
@@ -2379,7 +2377,7 @@
             self.assertTrue(match is not None, 
                             "Could not generate flow match from pkt")
             match.wildcards &= ~ofp.OFPFW_IN_PORT
-            act = action.action_output()
+            act = ofp.action.action_output()
             
             self.testPktsAgainstFlow(
                 [[
@@ -2415,7 +2413,7 @@
                     scapy.Ether(dst=dl_dst, src=dl_src, type=len(llc)) / llc,
                     self.RESULT_MATCH,
                 ]],
-                action.action_output(), match
+                ofp.action.action_output(), match
             )
     
             # Corrupt length field
@@ -2426,7 +2424,7 @@
                     scapy.Ether(dst=dl_dst, src=dl_src, type=ethLen) / llc,
                     self.RESULT_ANY,
                 ]],
-                action.action_output(), match
+                ofp.action.action_output(), match
             )
             
         def testPacketEthSrcDstTypeMatch(title, llc, is_snap_ip):
@@ -2448,7 +2446,7 @@
                     scapy.Ether(dst=dl_dst, src=dl_src, type=len(llc)) / llc,
                     is_match,
                 ]],
-                action.action_output(), match
+                ofp.action.action_output(), match
             )
     
             # Corrupt length field
@@ -2459,7 +2457,7 @@
                     scapy.Ether(dst=dl_dst, src=dl_src, type=ethLen) / llc,
                     self.RESULT_ANY,
                 ]],
-                action.action_output(), match
+                ofp.action.action_output(), match
             )
 
         def testPacket(title, llc, is_snap_ip):
@@ -2541,7 +2539,7 @@
                 scapy.Ether(dst=dl_dst, src=dl_src, type=len(llc)) / llc,
                 result,
             ])
-            act = action.action_output()
+            act = ofp.action.action_output()
             self.testPktsAgainstFlow(pkts, act, match)
     
         def testPacketEthTypeNotEth(title, llc, is_snap):
@@ -2561,7 +2559,7 @@
                 scapy.Ether(dst=dl_dst, src=dl_src, type=len(llc)) / llc,
                 result,
             ])
-            act = action.action_output()
+            act = ofp.action.action_output()
             self.testPktsAgainstFlow(pkts, act, match)
     
         def testPacket(title, llc, is_snap):
@@ -2650,7 +2648,7 @@
                 result,
             ])
     
-            act = action.action_output()
+            act = ofp.action.action_output()
             self.testPktsAgainstFlow(pkts, act, match)
             
         testPacket("Basic ARP",
@@ -2695,7 +2693,7 @@
                 result,
             ])
     
-            act = action.action_output()
+            act = ofp.action.action_output()
             self.testPktsAgainstFlow(pkts, act, match)
 
         testPacket("Basic MAC matching - IPv4 payload",
@@ -2792,7 +2790,7 @@
                 result,
             ])
     
-            act = action.action_output()
+            act = ofp.action.action_output()
             self.testPktsAgainstFlow(pkts, act, match)
         testPacket("Ether matching with double VLAN tag - Wrong type match",
             self.createMatch(dl_dst=parse_mac(dl_dst), dl_src=parse_mac(dl_src),
diff --git a/tests/port_stats.py b/tests/port_stats.py
index d2ade19..4aaf4ed 100644
--- a/tests/port_stats.py
+++ b/tests/port_stats.py
@@ -12,9 +12,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 
@@ -62,7 +60,7 @@
                     'Response packet does not match send packet')
 
 def getStats(obj, port):
-    stat_req = message.port_stats_request()
+    stat_req = ofp.message.port_stats_request()
     stat_req.port_no = port
 
     logging.info("Sending stats request")
@@ -79,7 +77,7 @@
     return packet_sent, packet_recv
 
 def getAllStats(obj):
-    stat_req = message.port_stats_request()
+    stat_req = ofp.message.port_stats_request()
     stat_req.port_no = ofp.OFPP_NONE
 
     logging.info("Sending all port stats request")
@@ -94,7 +92,7 @@
     return stats
 
 def verifyStats(obj, port, test_timeout, packet_sent, packet_recv):
-    stat_req = message.port_stats_request()
+    stat_req = ofp.message.port_stats_request()
     stat_req.port_no = port
 
     all_packets_received = 0
@@ -157,7 +155,7 @@
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         self.assertTrue(match is not None, 
                         "Could not generate flow match from pkt")
-        act = action.action_output()
+        act = ofp.action.action_output()
 
         # build flow
         ingress_port = of_ports[0];
@@ -165,7 +163,7 @@
         logging.info("Ingress " + str(ingress_port) + 
                        " to egress " + str(egress_port))
         match.in_port = ingress_port
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.match = match
         flow_mod_msg.cookie = random.randint(0,9007199254740992)
         flow_mod_msg.buffer_id = 0xffffffff
@@ -210,13 +208,13 @@
                         "Could not generate flow match from pkt")
         match.in_port = ingress_port
         
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.match = match
         flow_mod_msg.cookie = random.randint(0,9007199254740992)
         flow_mod_msg.buffer_id = 0xffffffff
         flow_mod_msg.idle_timeout = 0
         flow_mod_msg.hard_timeout = 0
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = egress_port
         flow_mod_msg.actions.add(act)
 
@@ -287,13 +285,13 @@
                         "Could not generate flow match from pkt")
         match.in_port = ingress_port
         
-        flow_mod_msg = message.flow_mod()
+        flow_mod_msg = ofp.message.flow_mod()
         flow_mod_msg.match = match
         flow_mod_msg.cookie = random.randint(0,9007199254740992)
         flow_mod_msg.buffer_id = 0xffffffff
         flow_mod_msg.idle_timeout = 0
         flow_mod_msg.hard_timeout = 0
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = egress_port
         flow_mod_msg.actions.add(act)