use generic ofp import
diff --git a/src/python/oftest/illegal_message.py b/src/python/oftest/illegal_message.py
index f225b90..8e52e33 100644
--- a/src/python/oftest/illegal_message.py
+++ b/src/python/oftest/illegal_message.py
@@ -3,10 +3,10 @@
"""
import struct
-import of10
+import ofp
class illegal_message_type(object):
- version = of10.OFP_VERSION
+ version = ofp.OFP_VERSION
type = 217
def __init__(self, xid=None):
diff --git a/src/python/oftest/parse.py b/src/python/oftest/parse.py
index 17a3573..d75c7cd 100644
--- a/src/python/oftest/parse.py
+++ b/src/python/oftest/parse.py
@@ -4,7 +4,7 @@
import sys
import logging
-import of10 as ofp
+import ofp
try:
import scapy.all as scapy
except:
diff --git a/src/python/oftest/testutils.py b/src/python/oftest/testutils.py
index 969fdc4..980099f 100644
--- a/src/python/oftest/testutils.py
+++ b/src/python/oftest/testutils.py
@@ -16,10 +16,8 @@
import oftest
import oftest.controller
import oftest.dataplane
-import of10
-import of10.message
-import of10.action
import oftest.parse
+import ofp
global skipped_test_count
skipped_test_count = 0
@@ -40,9 +38,9 @@
"""
logging.info("Deleting all flows")
- msg = of10.message.flow_delete()
- msg.match.wildcards = of10.OFPFW_ALL
- msg.out_port = of10.OFPP_NONE
+ msg = ofp.message.flow_delete()
+ msg.match.wildcards = ofp.OFPFW_ALL
+ msg.out_port = ofp.OFPP_NONE
msg.buffer_id = 0xffffffff
ctrl.message_send(msg)
return 0 # for backwards compatibility
@@ -50,8 +48,8 @@
def required_wildcards(parent):
w = test_param_get('required_wildcards', default='default')
if w == 'l3-l4':
- return (of10.OFPFW_NW_SRC_ALL | of10.OFPFW_NW_DST_ALL | of10.OFPFW_NW_TOS
- | of10.OFPFW_NW_PROTO | of10.OFPFW_TP_SRC | of10.OFPFW_TP_DST)
+ return (ofp.OFPFW_NW_SRC_ALL | ofp.OFPFW_NW_DST_ALL | ofp.OFPFW_NW_TOS
+ | ofp.OFPFW_NW_PROTO | ofp.OFPFW_TP_SRC | ofp.OFPFW_TP_DST)
else:
return 0
@@ -340,7 +338,7 @@
Do a barrier command
Return 0 on success, -1 on error
"""
- b = of10.message.barrier_request()
+ b = ofp.message.barrier_request()
(resp, pkt) = ctrl.transact(b, timeout=timeout)
if resp is None:
raise AssertionError("barrier failed")
@@ -357,7 +355,7 @@
@returns (hwaddr, config, advert) The hwaddress, configuration and
advertised values
"""
- request = of10.message.features_request()
+ request = ofp.message.features_request()
reply, pkt = controller.transact(request)
logging.debug(reply.show())
if reply is None:
@@ -379,7 +377,7 @@
configuration value according to config and mask
"""
logging.info("Setting port " + str(port_no) + " to config " + str(config))
- request = of10.message.features_request()
+ request = ofp.message.features_request()
reply, pkt = controller.transact(request)
if reply is None:
return -1
@@ -389,7 +387,7 @@
if reply.ports[idx].port_no == port_no:
p = reply.ports[idx]
break
- mod = of10.message.port_mod()
+ mod = ofp.message.port_mod()
mod.port_no = port_no
if p:
mod.hw_addr = p.hw_addr
@@ -460,7 +458,7 @@
# Expect a packet from each port on egr port list
for egr_port in egr_port_list:
check_port = egr_port
- if egr_port == of10.OFPP_IN_PORT:
+ if egr_port == ofp.OFPP_IN_PORT:
check_port = ing_port
(rcv_port, rcv_pkt, pkt_time) = parent.dataplane.poll(
port_number=check_port, exp_pkt=exp_pkt_arg)
@@ -516,7 +514,7 @@
'Match failed: eth_type: ' + str(req_match.eth_type) +
" != " + str(res_match.eth_type))
- if (not(req_match.wildcards & of10.OFPFW_DL_TYPE)
+ if (not(req_match.wildcards & ofp.OFPFW_DL_TYPE)
and (req_match.eth_type == IP_ETHERTYPE)):
parent.assertEqual(req_match.ip_dscp, res_match.ip_dscp,
'Match failed: ip_dscp: ' + str(req_match.ip_dscp) +
@@ -531,7 +529,7 @@
'Match failed: ipv4_dst: ' + str(req_match.ipv4_dst) +
" != " + str(res_match.ipv4_dst))
- if (not(req_match.wildcards & of10.OFPFW_NW_PROTO)
+ if (not(req_match.wildcards & ofp.OFPFW_NW_PROTO)
and ((req_match.ip_proto == TCP_PROTOCOL)
or (req_match.ip_proto == UDP_PROTOCOL))):
parent.assertEqual(req_match.tcp_src, res_match.tcp_src,
@@ -564,7 +562,7 @@
if wildcards is None:
wildcards = required_wildcards(parent)
if in_band:
- wildcards &= ~of10.OFPFW_IN_PORT
+ wildcards &= ~ofp.OFPFW_IN_PORT
match.wildcards = wildcards
match.in_port = ing_port
@@ -573,11 +571,11 @@
else:
egr_port_list = [egr_ports]
- request = of10.message.flow_add()
+ request = ofp.message.flow_add()
request.match = match
request.buffer_id = 0xffffffff
if check_expire:
- request.flags |= of10.OFPFF_SEND_FLOW_REM
+ request.flags |= ofp.OFPFF_SEND_FLOW_REM
request.hard_timeout = 1
if action_list is not None:
@@ -588,14 +586,14 @@
# Set up output/enqueue action if directed
if egr_queue is not None:
parent.assertTrue(egr_ports is not None, "Egress port not set")
- act = of10.action.enqueue()
+ act = ofp.action.enqueue()
for egr_port in egr_port_list:
act.port = egr_port
act.queue_id = egr_queue
request.actions.append(act)
elif egr_ports is not None:
for egr_port in egr_port_list:
- act = of10.action.output()
+ act = ofp.action.output()
act.port = egr_port
request.actions.append(act)
@@ -673,7 +671,7 @@
if pkt is None:
pkt = simple_tcp_packet(dl_vlan_enable=(vlan_vid >= 0), vlan_vid=vlan_vid)
- msg = of10.message.packet_out()
+ msg = ofp.message.packet_out()
msg.in_port = ing_port
msg.data = str(pkt)
if action_list is not None:
@@ -683,7 +681,7 @@
# Set up output action
if egr_ports is not None:
for egr_port in egr_ports:
- act = of10.action.output()
+ act = ofp.action.output()
act.port = egr_port
msg.actions.append(act)
@@ -749,7 +747,7 @@
egr_ports = get_egr_list(parent, of_ports, egr_count,
exclude_list=[ingress_port])
if ing_port:
- egr_ports.append(of10.OFPP_IN_PORT)
+ egr_ports.append(ofp.OFPP_IN_PORT)
if len(egr_ports) == 0:
parent.assertTrue(0, "Failed to generate egress port list")
@@ -769,7 +767,7 @@
egr_ports = get_egr_list(parent, of_ports, egr_count,
exclude_list=[ingress_port])
if ing_port:
- egr_ports.append(of10.OFPP_IN_PORT)
+ egr_ports.append(ofp.OFPP_IN_PORT)
flow_match_test_pktout(parent, ingress_port, egr_ports,
vlan_vid=vlan_vid,
pkt=pkt, exp_pkt=exp_pkt,
@@ -816,42 +814,42 @@
return None
if field_to_mod == 'eth_dst':
- act = of10.action.set_dl_dst()
+ act = ofp.action.set_dl_dst()
act.dl_addr = oftest.parse.parse_mac(mod_field_vals['eth_dst'])
elif field_to_mod == 'eth_src':
- act = of10.action.set_dl_src()
+ act = ofp.action.set_dl_src()
act.dl_addr = oftest.parse.parse_mac(mod_field_vals['eth_src'])
elif field_to_mod == 'dl_vlan_enable':
if not mod_field_vals['dl_vlan_enable']: # Strip VLAN tag
- act = of10.action.strip_vlan()
+ act = ofp.action.strip_vlan()
# Add VLAN tag is handled by vlan_vid field
# Will return None in this case
elif field_to_mod == 'vlan_vid':
- act = of10.action.set_vlan_vid()
+ act = ofp.action.set_vlan_vid()
act.vlan_vid = mod_field_vals['vlan_vid']
elif field_to_mod == 'vlan_pcp':
- act = of10.action.set_vlan_pcp()
+ act = ofp.action.set_vlan_pcp()
act.vlan_pcp = mod_field_vals['vlan_pcp']
elif field_to_mod == 'ip_src':
- act = of10.action.set_nw_src()
+ act = ofp.action.set_nw_src()
act.nw_addr = oftest.parse.parse_ip(mod_field_vals['ip_src'])
elif field_to_mod == 'ip_dst':
- act = of10.action.set_nw_dst()
+ act = ofp.action.set_nw_dst()
act.nw_addr = oftest.parse.parse_ip(mod_field_vals['ip_dst'])
elif field_to_mod == 'ip_tos':
- act = of10.action.set_nw_tos()
+ act = ofp.action.set_nw_tos()
act.nw_tos = mod_field_vals['ip_tos']
elif field_to_mod == 'tcp_sport':
- act = of10.action.set_tp_src()
+ act = ofp.action.set_tp_src()
act.tp_port = mod_field_vals['tcp_sport']
elif field_to_mod == 'tcp_dport':
- act = of10.action.set_tp_dst()
+ act = ofp.action.set_tp_dst()
act.tp_port = mod_field_vals['tcp_dport']
elif field_to_mod == 'udp_sport':
- act = of10.action.set_tp_src()
+ act = ofp.action.set_tp_src()
act.tp_port = mod_field_vals['udp_sport']
elif field_to_mod == 'udp_dport':
- act = of10.action.set_tp_dst()
+ act = ofp.action.set_tp_dst()
act.tp_port = mod_field_vals['udp_dport']
else:
parent.assertTrue(0, "Unknown field to modify: " + str(field_to_mod))
@@ -968,10 +966,10 @@
# Generate a simple "drop" flow mod
# If in_band is true, then only drop from first test port
def flow_mod_gen(port_map, in_band):
- request = of10.message.flow_add()
- request.match.wildcards = of10.OFPFW_ALL
+ request = ofp.message.flow_add()
+ request.match.wildcards = ofp.OFPFW_ALL
if in_band:
- request.match.wildcards = of10.OFPFW_ALL - of10.OFPFW_IN_PORT
+ request.match.wildcards = ofp.OFPFW_ALL - ofp.OFPFW_IN_PORT
for of_port, ifname in port_map.items(): # Grab first port
break
request.match.in_port = of_port
@@ -1001,11 +999,11 @@
@returns dict with keys flows, packets, bytes, active (flows),
lookups, matched
"""
- stat_req = of10.message.aggregate_stats_request()
- stat_req.match = of10.match()
- stat_req.match.wildcards = of10.OFPFW_ALL
+ stat_req = ofp.message.aggregate_stats_request()
+ stat_req.match = ofp.match()
+ stat_req.match.wildcards = ofp.OFPFW_ALL
stat_req.table_id = 0xff
- stat_req.out_port = of10.OFPP_NONE
+ stat_req.out_port = ofp.OFPP_NONE
rv = {}
@@ -1017,7 +1015,7 @@
obj.packet_count, obj.byte_count)
break
- request = of10.message.table_stats_request()
+ request = ofp.message.table_stats_request()
(reply , pkt) = parent.controller.transact(request)
@@ -1147,17 +1145,17 @@
reply, _ = test.controller.transact(req)
test.assertTrue(reply is not None, "No response to stats request")
stats.extend(reply.entries)
- while reply.flags & of10.OFPSF_REPLY_MORE != 0:
- reply, pkt = self.controller.poll(exp_msg=of10.OFPT_STATS_REPLY)
+ while reply.flags & ofp.OFPSF_REPLY_MORE != 0:
+ reply, pkt = self.controller.poll(exp_msg=ofp.OFPT_STATS_REPLY)
test.assertTrue(reply is not None, "No response to stats request")
stats.extend(reply.entries)
return stats
-def get_flow_stats(test, match, table_id=0xff, out_port=of10.OFPP_NONE):
+def get_flow_stats(test, match, table_id=0xff, out_port=ofp.OFPP_NONE):
"""
Retrieve a list of flow stats entries.
"""
- req = of10.message.flow_stats_request(match=match,
+ req = ofp.message.flow_stats_request(match=match,
table_id=table_id,
out_port=out_port)
return get_stats(test, req)
@@ -1166,18 +1164,18 @@
"""
Retrieve a list of port stats entries.
"""
- req = of10.message.port_stats_request(port_no=port_no)
+ req = ofp.message.port_stats_request(port_no=port_no)
return get_stats(test, req)
def get_queue_stats(test, port_no, queue_id):
"""
Retrieve a list of queue stats entries.
"""
- req = of10.message.queue_stats_request(port_no=port_no, queue_id=queue_id)
+ req = ofp.message.queue_stats_request(port_no=port_no, queue_id=queue_id)
return get_stats(test, req)
def verify_flow_stats(test, match, table_id=0xff,
- out_port=of10.OFPP_NONE,
+ out_port=ofp.OFPP_NONE,
initial=[],
pkts=None, bytes=None):
"""