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)