summaryrefslogtreecommitdiffhomepage
path: root/tests/packet_data_generator3
diff options
context:
space:
mode:
Diffstat (limited to 'tests/packet_data_generator3')
-rw-r--r--tests/packet_data_generator3/gen.py329
1 files changed, 0 insertions, 329 deletions
diff --git a/tests/packet_data_generator3/gen.py b/tests/packet_data_generator3/gen.py
deleted file mode 100644
index 92676e46..00000000
--- a/tests/packet_data_generator3/gen.py
+++ /dev/null
@@ -1,329 +0,0 @@
-#! /usr/bin/env python
-
-from __future__ import print_function
-
-import getopt
-import os
-import six
-from six.moves import socketserver
-import subprocess
-import sys
-import tempfile
-import threading
-
-from ryu.ofproto import ofproto_parser
-from ryu.ofproto import ofproto_v1_0
-from ryu.ofproto import ofproto_v1_0_parser
-from ryu.ofproto import ofproto_v1_5
-from ryu.ofproto import ofproto_v1_5_parser
-from ryu.ofproto import ofproto_protocol
-
-if six.PY3:
- TimeoutExpired = subprocess.TimeoutExpired
-else:
- # As python2 doesn't have timeout for subprocess.call,
- # this script may hang.
- TimeoutExpired = None
-
-STD_MATCH = [
- 'in_port=43981',
- 'dl_vlan=999',
- 'dl_dst=aa:bb:cc:99:88:77',
- 'dl_type=0x0800', # ETH_TYPE_IP
- 'nw_dst=192.168.2.1',
- 'tun_src=192.168.2.3',
- 'tun_dst=192.168.2.4',
- 'tun_id=50000']
-
-MESSAGES = [
- {'name': 'action_learn',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': ['table=2',
- 'importance=39032'] + STD_MATCH + [
- 'actions=strip_vlan,mod_nw_dst:192.168.2.9,' +
- 'learn(table=99,priority=1,hard_timeout=300,' +
- 'OXM_OF_VLAN_VID[0..11],' +
- 'OXM_OF_ETH_DST[]=OXM_OF_ETH_SRC[],' +
- 'load:0->OXM_OF_VLAN_VID[],' +
- 'load:OXM_OF_TUNNEL_ID[]->OXM_OF_TUNNEL_ID[],' +
- 'output:OXM_OF_IN_PORT[]),goto_table:100']},
- {'name': 'match_conj',
- 'versions': [4],
- 'cmd': 'mod-flows',
- 'args': ['table=3',
- 'cookie=0x123456789abcdef0/0xffffffffffffffff',
- 'dl_vlan=1234',
- 'conj_id=0xabcdef',
- 'actions=strip_vlan,goto_table:100']},
- {'name': 'match_pkt_mark',
- 'versions': [4],
- 'cmd': 'mod-flows',
- 'args': ['table=3',
- 'cookie=0x123456789abcdef0/0xffffffffffffffff',
- 'dl_vlan=1234',
- 'pkt_mark=54321',
- 'actions=strip_vlan,goto_table:100']},
- {'name': 'match_pkt_mark_masked',
- 'versions': [4],
- 'cmd': 'mod-flows',
- 'args': ['table=3',
- 'cookie=0x123456789abcdef0/0xffffffffffffffff',
- 'dl_vlan=1234',
- 'pkt_mark=0xd431/0xffff',
- 'actions=strip_vlan,goto_table:100']},
- {'name': 'action_conjunction',
- 'versions': [4],
- 'cmd': 'mod-flows',
- 'args': (['table=2',
- 'cookie=0x123456789abcdef0/0xffffffffffffffff'] +
- STD_MATCH +
- ['actions=conjunction(0xabcdef,1/2)'])},
- {'name': 'match_load_nx_register',
- 'versions': [4],
- 'cmd': 'mod-flows',
- 'args': ['table=3',
- 'cookie=0x123456789abcdef0/0xffffffffffffffff',
- 'reg0=0x1234',
- 'reg5=0xabcd/0xffff',
- 'actions=load:0xdeadbee->NXM_NX_REG0[4..31]']},
- {'name': 'match_move_nx_register',
- 'versions': [4],
- 'cmd': 'mod-flows',
- 'args': ['table=3',
- 'cookie=0x123456789abcdef0/0xffffffffffffffff',
- 'reg0=0x1234',
- 'reg5=0xabcd/0xffff',
- 'actions=move:NXM_NX_REG0[10..15]->NXM_NX_REG1[0..5]']},
- {'name': 'action_resubmit',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['table=3',
- 'importance=39032'] +
- STD_MATCH +
- ['actions=resubmit(1234,99)'])},
- {'name': 'action_ct',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['table=3,',
- 'importance=39032'] +
- ['dl_type=0x0800,ct_state=-trk'] +
- ['actions=ct(table=4,zone=NXM_NX_REG0[4..31])'])},
- {'name': 'action_ct_exec',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['table=3,',
- 'importance=39032'] +
- ['dl_type=0x0800,ct_state=+trk+est'] +
- ['actions=ct(commit,exec(set_field:0x654321->ct_mark))'])},
- {'name': 'action_ct_nat',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['table=3,',
- 'importance=39032'] +
- ['dl_type=0x0800'] +
- ['actions=ct(commit,nat(src=10.1.12.0-10.1.13.255:1-1023)'])},
- {'name': 'action_ct_nat_v6',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['table=3,',
- 'importance=39032'] +
- ['dl_type=0x86dd'] +
- ['actions=ct(commit,nat(dst=2001:1::1-2001:1::ffff)'])},
- {'name': 'action_note',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100'] +
- ['actions=note:04.05.06.07.00.00'])},
- {'name': 'action_controller',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100'] +
- ['actions=controller(reason=packet_out,max_len=1024,id=1)'])},
- {'name': 'action_fintimeout',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100,tcp'] +
- ['actions=fin_timeout(idle_timeout=30,hard_timeout=60)'])},
- {'name': 'action_dec_nw_ttl',
- 'versions': [1],
- 'cmd': 'add-flow',
- 'args': (['priority=100,mpls'] +
- ['actions=dec_ttl'])},
- {'name': 'action_push_mpls',
- 'versions': [1],
- 'cmd': 'add-flow',
- 'args': (['priority=100,ip'] +
- ['actions=push_mpls:0x8847'])},
- {'name': 'action_pop_mpls',
- 'versions': [1],
- 'cmd': 'add-flow',
- 'args': (['priority=100,mpls'] +
- ['actions=pop_mpls:0x0800'])},
- {'name': 'action_set_mpls_ttl',
- 'versions': [1],
- 'cmd': 'add-flow',
- 'args': (['priority=100,mpls'] +
- ['actions=set_mpls_ttl(127)'])},
- {'name': 'action_dec_mpls_ttl',
- 'versions': [1],
- 'cmd': 'add-flow',
- 'args': (['priority=100,mpls'] +
- ['actions=dec_mpls_ttl'])},
- {'name': 'action_set_mpls_label',
- 'versions': [1],
- 'cmd': 'add-flow',
- 'args': (['priority=100,mpls'] +
- ['actions=set_mpls_label(10)'])},
- {'name': 'action_set_mpls_tc',
- 'versions': [1],
- 'cmd': 'add-flow',
- 'args': (['priority=100,mpls'] +
- ['actions=set_mpls_tc(10)'])},
- {'name': 'action_dec_ttl_cnt_ids',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100,tcp'] +
- ['actions=dec_ttl(1,2,3,4,5)'])},
- {'name': 'action_stack_push',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100'] +
- ['actions=push:NXM_NX_REG2[1..5]'])},
- {'name': 'action_stack_pop',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100'] +
- ['actions=pop:NXM_NX_REG2[1..5]'])},
- {'name': 'action_sample',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100'] +
- ['actions=sample(probability=3,collector_set_id=1,' +
- 'obs_domain_id=2,obs_point_id=3)'])},
- {'name': 'action_sample2',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100'] +
- ['actions=sample(probability=3,collector_set_id=1,' +
- 'obs_domain_id=2,obs_point_id=3,sampling_port=8080)'])},
- {'name': 'action_controller2',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100'] +
- ['actions=controller(reason=packet_out,max_len=1024,' +
- 'id=10,userdata=01.02.03.04.05,pause)'])},
- {'name': 'action_output_trunc',
- 'versions': [4],
- 'cmd': 'add-flow',
- 'args': (['priority=100'] +
- ['actions=output(port=8080,max_len=1024)'])},
-
-
- # ToDo: The following actions are not eligible
- # {'name': 'action_regload2'},
- # {'name': 'action_outputreg2'},
-]
-
-buf = []
-
-
-class MyHandler(socketserver.BaseRequestHandler):
- verbose = False
-
- def handle(self):
- desc = ofproto_protocol.ProtocolDesc()
- residue = b''
- while True:
- if residue:
- data = residue
- residue = b''
- else:
- data = self.request.recv(1024)
- if data == b'':
- break
- if self.verbose:
- print(data)
- h = ofproto_parser.header(data)
- if self.verbose:
- print(h)
- version, msg_type, msg_len, xid = h
- residue = data[msg_len:]
- desc.set_version(version=version)
- if msg_type == desc.ofproto.OFPT_HELLO:
- hello = desc.ofproto_parser.OFPHello(desc)
- hello.serialize()
- self.request.send(hello.buf)
- elif msg_type == desc.ofproto.OFPT_FLOW_MOD:
- # HACK: Clear xid into zero
- buf.append(data[:4] + b'\x00\x00\x00\x00' + data[8:msg_len])
- elif msg_type == desc.ofproto.OFPT_BARRIER_REQUEST:
- brep = desc.ofproto_parser.OFPBarrierReply(desc)
- brep.xid = xid
- brep.serialize()
- self.request.send(brep.buf)
- break
-
-
-class MyVerboseHandler(MyHandler):
- verbose = True
-
-if __name__ == '__main__':
- optlist, args = getopt.getopt(sys.argv[1:], 'dvo:')
- debug = False
- ofctl_cmd = '/usr/bin/ovs-ofctl'
- verbose = False
- for o, a in optlist:
- if o == '-d':
- debug = True
- elif o == '-v':
- verbose = True
- elif o == '-o':
- ofctl_cmd = a
-
- if not os.access(ofctl_cmd, os.X_OK):
- raise Exception("%s is not executable" % ofctl_cmd)
- outpath = '../packet_data'
- socketdir = tempfile.mkdtemp()
- socketname = os.path.join(socketdir, 'ovs')
- server = socketserver.UnixStreamServer(socketname,
- MyVerboseHandler if verbose else
- MyHandler)
- if debug or verbose:
- print("Serving at %s" % socketname)
-
- for msg in MESSAGES:
- for v in msg['versions']:
- cmdargs = [ofctl_cmd, '-O', 'OpenFlow%2d' % (v + 9)]
- if verbose:
- cmdargs.append('-v')
- cmdargs.append(msg['cmd'])
- cmdargs.append('unix:%s' % socketname)
- cmdargs.append('\n'.join(msg['args']))
- if verbose:
- print("Running cmd: " + ' '.join(cmdargs) + "\n")
- t = threading.Thread(target=subprocess.call, args=[cmdargs],
- kwargs={'timeout': 5})
- t.start()
- server.handle_request()
- if debug:
- print(buf.pop())
- else:
- outf = os.path.join(
- outpath, "of%d" % (v + 9),
- "ovs-ofctl-of%d-%s.packet" % (v + 9, msg['name']))
- print("Writing %s..." % outf)
- with open(outf, 'wb') as f:
- f.write(buf.pop())
- try:
- t.join()
- except TimeoutExpired as e:
- print(e)
-
- if debug:
- while True:
- server.handle_request()
- print(buf.pop())
-
- os.unlink(socketname)
- os.rmdir(socketdir)