Removed old flow-related scripts and files (circa December 2013)

Change-Id: I869938c529e63bedbc510d05f665c4a217864d68
diff --git a/scripts/add_flow.py b/scripts/add_flow.py
deleted file mode 100755
index 3066936..0000000
--- a/scripts/add_flow.py
+++ /dev/null
@@ -1,638 +0,0 @@
-#! /usr/bin/env python
-# -*- Mode: python; py-indent-offset: 4; tab-width: 8; indent-tabs-mode: t; -*-
-
-import copy
-import pprint
-import os
-import sys
-import subprocess
-import json
-import argparse
-import io
-import time
-
-from flask import Flask, json, Response, render_template, make_response, request
-
-#
-# curl http://127.0.0.1:8080/wm/onos/topology/route/00:00:00:00:00:00:0a:01/1/00:00:00:00:00:00:0a:04/1/json
-#
-
-## Global Var ##
-ControllerIP = "127.0.0.1"
-ControllerPort = 8080
-MonitoringEnabled = False
-MonitoringByOnos = False
-ReadFromFile = ""
-
-DEBUG=0
-pp = pprint.PrettyPrinter(indent=4)
-
-app = Flask(__name__)
-
-## Worker Functions ##
-def log_error(txt):
-  print '%s' % (txt)
-
-def debug(txt):
-  if DEBUG:
-    print '%s' % (txt)
-
-# @app.route("/wm/onos/topology/route/<srcdpid>/<srcport>/<destdpid>/<destport>/json")
-#
-# Sample output:
-# {'dstPort': {'port': {'value': 0}, 'dpid': {'value': '00:00:00:00:00:00:00:02'}}, 'srcPort': {'port': {'value': 0}, 'dpid': {'value': '00:00:00:00:00:00:00:01'}}, 'flowEntries': [{'outPort': {'value': 1}, 'flowEntryErrorState': None, 'flowEntryMatch': None, 'flowEntryActions': None, 'inPort': {'value': 0}, 'flowEntryId': None, 'flowEntryUserState': 'FE_USER_UNKNOWN', 'dpid': {'value': '00:00:00:00:00:00:00:01'}, 'flowEntrySwitchState': 'FE_SWITCH_UNKNOWN'}, {'outPort': {'value': 0}, 'flowEntryErrorState': None, 'flowEntryMatch': None, 'flowEntryActions': None, 'inPort': {'value': 9}, 'flowEntryId': None, 'flowEntryUserState': 'FE_USER_UNKNOWN', 'dpid': {'value': '00:00:00:00:00:00:00:02'}, 'flowEntrySwitchState': 'FE_SWITCH_UNKNOWN'}]}
-#
-def shortest_path(v1, p1, v2, p2):
-  try:
-    command = "curl -s http://%s:%s/wm/onos/topology/route/%s/%s/%s/%s/json" % (ControllerIP, ControllerPort, v1, p1, v2, p2)
-    debug("shortest_path %s" % command)
-    parsedResult = []
-
-    result = os.popen(command).read()
-    debug("result %s" % result)
-    if len(result) == 0:
-      log_error("No Path found from %s/%s to %s/%s" % (v1, p1, v2, p2))
-    else:
-      parsedResult = json.loads(result)
-      debug("parsed %s" % parsedResult)
-
-  except:
-    log_error("Controller IF has issue: No Path found from %s/%s to %s/%s" % (v1, p1, v2, p2))
-
-  return parsedResult
-
-def print_data_path(data_path):
-  if len(data_path) == 0:
-    return
-
-  srcSwitch = data_path['srcPort']['dpid']['value'];
-  srcPort = data_path['srcPort']['port']['value'];
-  dstSwitch = data_path['dstPort']['dpid']['value'];
-  dstPort = data_path['dstPort']['port']['value'];
-
-  print "DataPath: (src = %s/%s dst = %s/%s)" % (srcSwitch, srcPort, dstSwitch, dstPort);
-
-  for f in data_path['flowEntries']:
-    inPort = f['inPort']['value'];
-    outPort = f['outPort']['value'];
-    dpid = f['dpid']['value']
-    print "  FlowEntry: (%s, %s, %s)" % (inPort, dpid, outPort)
-
-def add_flow_path(flow_path):
-  flow_path_json = json.dumps(flow_path)
-
-  try:
-    command = "curl -s -H 'Content-Type: application/json' -d '%s' http://%s:%s/wm/onos/flows/add/json" % (flow_path_json, ControllerIP, ControllerPort)
-    debug("add_flow_path %s" % command)
-    result = os.popen(command).read()
-    debug("result %s" % result)
-    # parsedResult = json.loads(result)
-    # debug("parsed %s" % parsedResult)
-  except:
-    log_error("Controller IF has issue")
-    exit(1)
-
-def add_shortest_path_flow(flow_path):
-  flow_path_json = json.dumps(flow_path)
-
-  try:
-    command = "curl -s -H 'Content-Type: application/json' -d '%s' http://%s:%s/wm/onos/flows/add/json" % (flow_path_json, ControllerIP, ControllerPort)
-    debug("add_shortest_path_flow %s" % command)
-    result = os.popen(command).read()
-    debug("result %s" % result)
-    # parsedResult = json.loads(result)
-    # debug("parsed %s" % parsedResult)
-  except:
-    log_error("Controller IF has issue")
-    exit(1)
-
-def delete_flow_path(flow_id):
-  command = "curl -s \"http://%s:%s/wm/onos/flows/delete/%s/json\"" % (ControllerIP, ControllerPort, flow_id)
-  debug("delete_flow_path %s" % command)
-  result = os.popen(command).read()
-  debug("result %s" % result)
-  # parsedResult = json.loads(result)
-  # debug("parsed %s" % parsedResult)
-
-def extract_flow_args(my_args):
-  # Check the arguments
-  if len(my_args) < 6:
-    log_error(usage_msg)
-    exit(1)
-
-  # Extract the mandatory arguments
-  my_flow_id = my_args[0]
-  my_installer_id = my_args[1]
-  my_src_dpid = my_args[2]
-  my_src_port = my_args[3]
-  my_dst_dpid = my_args[4]
-  my_dst_port = my_args[5]
-
-  #
-  # Extract the "flowPathFlags", "idleTimeout", "hardTimeout", "priority",
-  # "match" and "action" arguments.
-  #
-  flowPathFlags = 0L
-  idleTimeout = 0
-  hardTimeout = 0
-  priority = 32768
-  match = {}
-  matchInPortEnabled = True		# NOTE: Enabled by default
-  actions = []
-  actionOutputEnabled = True		# NOTE: Enabled by default
-  idx = 6
-  while idx < len(my_args):
-    action = {}
-    arg1 = my_args[idx]
-    idx = idx + 1
-    # Extract the second argument
-    if idx >= len(my_args):
-      error_arg = "ERROR: Missing or invalid '" + arg1 + "' argument"
-      log_error(error_arg)
-      log_error(usage_msg)
-      exit(1)
-    arg2 = my_args[idx]
-    idx = idx + 1
-
-    if arg1 == "flowPathFlags":
-      if "DISCARD_FIRST_HOP_ENTRY" in arg2:
-	flowPathFlags = flowPathFlags + 0x1
-      if "KEEP_ONLY_FIRST_HOP_ENTRY" in arg2:
-	flowPathFlags = flowPathFlags + 0x2
-    elif arg1 == "idleTimeout":
-     idleTimeout = arg2
-    elif arg1 == "hardTimeout":
-     hardTimeout = arg2
-    elif arg1 == "priority":
-     priority = arg2
-    elif arg1 == "matchInPort":
-      # Just mark whether inPort matching is enabled
-      matchInPortEnabled = arg2 in ['True', 'true']
-      # inPort = {}
-      # inPort['value'] = int(arg2, 0)
-      # match['inPort'] = inPort
-      ## match['matchInPort'] = True
-    elif arg1 == "matchSrcMac":
-      srcMac = {}
-      srcMac['value'] = arg2
-      match['srcMac'] = srcMac
-      # match['matchSrcMac'] = True
-    elif arg1 == "matchDstMac":
-      dstMac = {}
-      dstMac['value'] = arg2
-      match['dstMac'] = dstMac
-      # match['matchDstMac'] = True
-    elif arg1 == "matchEthernetFrameType":
-      match['ethernetFrameType'] = int(arg2, 0)
-      # match['matchEthernetFrameType'] = True
-    elif arg1 == "matchVlanId":
-      match['vlanId'] = int(arg2, 0)
-      # match['matchVlanId'] = True
-    elif arg1 == "matchVlanPriority":
-      match['vlanPriority'] = int(arg2, 0)
-      # match['matchVlanPriority'] = True
-    elif arg1 == "matchSrcIPv4Net":
-      srcIPv4Net = {}
-      srcIPv4Net['value'] = arg2
-      match['srcIPv4Net'] = srcIPv4Net
-      # match['matchSrcIPv4Net'] = True
-    elif arg1 == "matchDstIPv4Net":
-      dstIPv4Net = {}
-      dstIPv4Net['value'] = arg2
-      match['dstIPv4Net'] = dstIPv4Net
-      # match['matchDstIPv4Net'] = True
-    elif arg1 == "matchIpProto":
-      match['ipProto'] = int(arg2, 0)
-      # match['matchIpProto'] = True
-    elif arg1 == "matchIpToS":
-      match['ipToS'] = int(arg2, 0)
-      # match['matchIpToS'] = True
-    elif arg1 == "matchSrcTcpUdpPort":
-      match['srcTcpUdpPort'] = int(arg2, 0)
-      # match['matchSrcTcpUdpPort'] = True
-    elif arg1 == "matchDstTcpUdpPort":
-      match['dstTcpUdpPort'] = int(arg2, 0)
-      # match['matchDstTcpUdpPort'] = True
-    elif arg1 == "actionOutput":
-      # Mark whether ACTION_OUTPUT action is enabled
-      actionOutputEnabled = arg2 in ['True', 'true']
-      # If ACTION_OUTPUT is explicitly enabled, add an entry with a fake
-      # port number. We need this entry to preserve the action ordering.
-      if actionOutputEnabled == True:
-        actionOutput = {}
-        outPort = {}
-        outPort['value'] = 0xffff
-        actionOutput['port'] = outPort
-        actionOutput['maxLen'] = 0
-        action['actionOutput'] = actionOutput
-        # action['actionType'] = 'ACTION_OUTPUT'
-        actions.append(action)
-      #
-    elif arg1 == "actionSetVlanId":
-      vlanId = {}
-      vlanId['vlanId'] = int(arg2, 0)
-      action['actionSetVlanId'] = vlanId
-      # action['actionType'] = 'ACTION_SET_VLAN_VID'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionSetVlanPriority":
-      vlanPriority = {}
-      vlanPriority['vlanPriority'] = int(arg2, 0)
-      action['actionSetVlanPriority'] = vlanPriority
-      # action['actionType'] = 'ACTION_SET_VLAN_PCP'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionStripVlan":
-      stripVlan = {}
-      stripVlan['stripVlan'] = arg2 in ['True', 'true']
-      action['actionStripVlan'] = stripVlan
-      # action['actionType'] = 'ACTION_STRIP_VLAN'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionSetEthernetSrcAddr":
-      ethernetSrcAddr = {}
-      ethernetSrcAddr['value'] = arg2
-      setEthernetSrcAddr = {}
-      setEthernetSrcAddr['addr'] = ethernetSrcAddr
-      action['actionSetEthernetSrcAddr'] = setEthernetSrcAddr
-      # action['actionType'] = 'ACTION_SET_DL_SRC'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionSetEthernetDstAddr":
-      ethernetDstAddr = {}
-      ethernetDstAddr['value'] = arg2
-      setEthernetDstAddr = {}
-      setEthernetDstAddr['addr'] = ethernetDstAddr
-      action['actionSetEthernetDstAddr'] = setEthernetDstAddr
-      # action['actionType'] = 'ACTION_SET_DL_DST'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionSetIPv4SrcAddr":
-      IPv4SrcAddr = {}
-      IPv4SrcAddr['value'] = arg2
-      setIPv4SrcAddr = {}
-      setIPv4SrcAddr['addr'] = IPv4SrcAddr
-      action['actionSetIPv4SrcAddr'] = setIPv4SrcAddr
-      # action['actionType'] = 'ACTION_SET_NW_SRC'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionSetIPv4DstAddr":
-      IPv4DstAddr = {}
-      IPv4DstAddr['value'] = arg2
-      setIPv4DstAddr = {}
-      setIPv4DstAddr['addr'] = IPv4DstAddr
-      action['actionSetIPv4DstAddr'] = setIPv4DstAddr
-      # action['actionType'] = 'ACTION_SET_NW_DST'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionSetIpToS":
-      ipToS = {}
-      ipToS['ipToS'] = int(arg2, 0)
-      action['actionSetIpToS'] = ipToS
-      # action['actionType'] = 'ACTION_SET_NW_TOS'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionSetTcpUdpSrcPort":
-      tcpUdpSrcPort = {}
-      tcpUdpSrcPort['port'] = int(arg2, 0)
-      action['actionSetTcpUdpSrcPort'] = tcpUdpSrcPort
-      # action['actionType'] = 'ACTION_SET_TP_SRC'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionSetTcpUdpDstPort":
-      tcpUdpDstPort = {}
-      tcpUdpDstPort['port'] = int(arg2, 0)
-      action['actionSetTcpUdpDstPort'] = tcpUdpDstPort
-      # action['actionType'] = 'ACTION_SET_TP_DST'
-      actions.append(copy.deepcopy(action))
-    elif arg1 == "actionEnqueue":
-      # TODO: Implement ACTION_ENQUEUE
-      actionEnqueue = {}
-      #   actionEnqueue['queueId'] = int(arg2, 0)
-      #   enqueuePort = {}
-      #   enqueuePort['value'] = int(arg3, 0)
-      #   actionEnqueue['port'] = enqueuePort
-      #   action['actionEnqueue'] = actionEnqueue
-      #   # action['actionType'] = 'ACTION_ENQUEUE'
-      #   actions.append(copy.deepcopy(action))
-      #
-    else:
-      log_error("ERROR: Unknown argument '%s'" % (arg1))
-      log_error(usage_msg)
-      exit(1)
-
-  return {
-    'my_flow_id' : my_flow_id,
-    'my_installer_id' : my_installer_id,
-    'my_src_dpid' : my_src_dpid,
-    'my_src_port' : my_src_port,
-    'my_dst_dpid' : my_dst_dpid,
-    'my_dst_port' : my_dst_port,
-    'flowPathFlags' : flowPathFlags,
-    'idleTimeout' : idleTimeout,
-    'hardTimeout' : hardTimeout,
-    'priority' : priority,
-    'match' : match,
-    'matchInPortEnabled' : matchInPortEnabled,
-    'actions' : actions,
-    'actionOutputEnabled' : actionOutputEnabled
-    }
-
-def compute_data_path(parsed_args):
-
-  my_src_dpid = parsed_args['my_src_dpid']
-  my_src_port = parsed_args['my_src_port']
-  my_dst_dpid = parsed_args['my_dst_dpid']
-  my_dst_port = parsed_args['my_dst_port']
-
-  # Compute the shortest path
-  data_path = shortest_path(my_src_dpid, my_src_port, my_dst_dpid, my_dst_port)
-
-  debug("Data Path: %s" % data_path)
-  return data_path
-
-def compute_flow_path(parsed_args, data_path):
-
-  my_flow_id = parsed_args['my_flow_id']
-  my_installer_id = parsed_args['my_installer_id']
-  myFlowPathFlags = parsed_args['flowPathFlags']
-  myIdleTimeout = parsed_args['idleTimeout']
-  myHardTimeout = parsed_args['hardTimeout']
-  myPriority = parsed_args['priority']
-  match = parsed_args['match']
-  matchInPortEnabled = parsed_args['matchInPortEnabled']
-  actions = parsed_args['actions']
-  actionOutputEnabled = parsed_args['actionOutputEnabled']
-  my_data_path = copy.deepcopy(data_path)
-
-  flow_id = {}
-  flow_id['value'] = my_flow_id
-  installer_id = {}
-  installer_id['value'] = my_installer_id
-  flowPathFlags = {}
-  flowPathFlags['flags'] = myFlowPathFlags
-
-  flowEntryActions = {}
-
-  flow_path = {}
-  flow_path['flowId'] = flow_id
-  flow_path['installerId'] = installer_id
-  # NOTE: The 'flowPathType' might be rewritten later
-  flow_path['flowPathType'] = 'FP_TYPE_EXPLICIT_PATH'
-  flow_path['flowPathUserState'] = 'FP_USER_ADD'
-  flow_path['flowPathFlags'] = flowPathFlags
-  flow_path['idleTimeout'] = myIdleTimeout
-  flow_path['hardTimeout'] = myHardTimeout
-  flow_path['priority'] = myPriority
-
-  if (len(match) > 0):
-    flow_path['flowEntryMatch'] = copy.deepcopy(match)
-
-  #
-  # Add the match conditions to each flow entry
-  #
-  if (len(match) > 0) or matchInPortEnabled:
-    idx = 0
-    while idx < len(my_data_path['flowEntries']):
-      if matchInPortEnabled:
-	inPort = my_data_path['flowEntries'][idx]['inPort']
-	match['inPort'] = copy.deepcopy(inPort)
-	# match['matchInPort'] = True
-      my_data_path['flowEntries'][idx]['flowEntryMatch'] = copy.deepcopy(match)
-      idx = idx + 1
-
-
-  if (len(actions) > 0):
-    flowEntryActions['actions'] = copy.deepcopy(actions)
-    flow_path['flowEntryActions'] = flowEntryActions
-
-  #
-  # Set the actions for each flow entry
-  # NOTE: The actions from the command line are aplied
-  # ONLY to the first flow entry.
-  #
-  # If ACTION_OUTPUT action is enabled, then apply it
-  # to each flow entry.
-  #
-  if (len(actions) > 0) or actionOutputEnabled:
-    idx = 0
-    while idx < len(my_data_path['flowEntries']):
-      if idx > 0:
-	actions = []	# Reset the actions for all but first entry
-      action = {}
-      outPort = my_data_path['flowEntries'][idx]['outPort']
-      actionOutput = {}
-      actionOutput['port'] = copy.deepcopy(outPort)
-      # actionOutput['maxLen'] = 0	# TODO: not used for now
-      action['actionOutput'] = copy.deepcopy(actionOutput)
-      # action['actionType'] = 'ACTION_OUTPUT'
-      actions.append(copy.deepcopy(action))
-      flowEntryActions = {}
-      flowEntryActions['actions'] = copy.deepcopy(actions)
-
-      my_data_path['flowEntries'][idx]['flowEntryActions'] = flowEntryActions
-      idx = idx + 1
-
-  flow_path['dataPath'] = my_data_path
-  debug("Flow Path: %s" % flow_path)
-  return flow_path
-
-def exec_monitoring_by_onos(parsed_args):
-  idx = 0
-  while idx < len(parsed_args):
-    data_path = {}
-    src_dpid = {}
-    src_port = {}
-    dst_dpid = {}
-    dst_port = {}
-    src_switch_port = {}
-    dst_switch_port = {}
-    flow_entries = []
-
-    src_dpid['value'] = parsed_args[idx]['my_src_dpid']
-    src_port['value'] = parsed_args[idx]['my_src_port']
-    dst_dpid['value'] = parsed_args[idx]['my_dst_dpid']
-    dst_port['value'] = parsed_args[idx]['my_dst_port']
-    src_switch_port['dpid'] = src_dpid
-    src_switch_port['port'] = src_port
-    dst_switch_port['dpid'] = dst_dpid
-    dst_switch_port['port'] = dst_port
-
-    data_path['srcPort'] = copy.deepcopy(src_switch_port)
-    data_path['dstPort'] = copy.deepcopy(dst_switch_port)
-    data_path['flowEntries'] = copy.deepcopy(flow_entries)
-
-    #
-    # XXX: Explicitly disable the InPort matching, and
-    # the Output action, because they get in the way
-    # during the compute_flow_path() processing.
-    #
-    parsed_args[idx]['matchInPortEnabled'] = False
-    parsed_args[idx]['actionOutputEnabled'] = False
-
-    flow_path = compute_flow_path(parsed_args[idx], data_path)
-    flow_path['flowPathType'] = 'FP_TYPE_SHORTEST_PATH'
-
-    add_shortest_path_flow(flow_path)
-
-    idx = idx + 1
-
-
-def exec_processing_by_script(parsed_args):
-  #
-  # Initialization
-  #
-  last_data_paths = []
-  idx = 0
-  while idx < len(parsed_args):
-    last_data_path = []
-    last_data_paths.append(copy.deepcopy(last_data_path))
-    idx = idx + 1
-
-  #
-  # Do the work: install and/or periodically monitor each flow
-  #
-  while True:
-    idx = 0
-    while idx < len(parsed_args):
-      last_data_path = last_data_paths[idx]
-      my_flow_id = parsed_args[idx]['my_flow_id']
-      data_path = compute_data_path(parsed_args[idx])
-      if data_path != last_data_path:
-	print_data_path(data_path)
-	if len(last_data_path) > 0:
-	  delete_flow_path(my_flow_id)
-	if len(data_path) > 0:
-	  flow_path = compute_flow_path(parsed_args[idx], data_path)
-	  add_flow_path(flow_path)
-	last_data_paths[idx] = copy.deepcopy(data_path)
-      idx = idx + 1
-
-    if MonitoringEnabled != True:
-      break
-    time.sleep(1)
-
-
-if __name__ == "__main__":
-  usage_msg = "Usage: %s [Flags] <flow-id> <installer-id> <src-dpid> <src-port> <dest-dpid> <dest-port> [Flow Attributes] [Match Conditions] [Actions]\n" % (sys.argv[0])
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "    <flow-id>             The Flow ID, or -1 if it should be assigned by ONOS\n"
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "    Flags:\n"
-  usage_msg = usage_msg + "        -m [monitorname]  Monitor and maintain the installed shortest path(s)\n"
-  usage_msg = usage_msg + "                          If 'monitorname' is specified and is set to 'ONOS'\n"
-  usage_msg = usage_msg + "                          (case insensitive), then the flow generation and\n"
-  usage_msg = usage_msg + "                          maintanenance is done by ONOS itself.\n"
-  usage_msg = usage_msg + "                          Otherwise, it is done by this script.\n"
-  usage_msg = usage_msg + "        -f <filename>     Read the flow(s) to install from a file\n"
-  usage_msg = usage_msg + "                          File format: one line per flow starting with <flow-id>\n"
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "    Flow Attributes:\n"
-  usage_msg = usage_msg + "        flowPathFlags <Flags> (flag names separated by ',')\n"
-  usage_msg = usage_msg + "            Known flags:\n"
-  usage_msg = usage_msg + "            DISCARD_FIRST_HOP_ENTRY    : Discard the first-hop flow entry\n"
-  usage_msg = usage_msg + "            KEEP_ONLY_FIRST_HOP_ENTRY  : Keep only the first-hop flow entry\n"
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "        idleTimeout <idleTimeoutInSeconds> (in the [0, 65535] interval;\n"
-  usage_msg = usage_msg + "                                            default to 0: no timeout)\n"
-  usage_msg = usage_msg + "        hardTimeout <hardTimeoutInSeconds> (in the [0, 65535] interval;\n"
-  usage_msg = usage_msg + "                                            default to 0: no timeout)\n"
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "        priority <flowPriority> (in the [0, 65535] interval; default to 32768)\n"
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "    Match Conditions:\n"
-  usage_msg = usage_msg + "        matchInPort <True|False> (default to True)\n"
-  usage_msg = usage_msg + "        matchSrcMac <source MAC address>\n"
-  usage_msg = usage_msg + "        matchDstMac <destination MAC address>\n"
-  usage_msg = usage_msg + "        matchEthernetFrameType <Ethernet frame type>\n"
-  usage_msg = usage_msg + "        matchVlanId <VLAN ID>\n"
-  usage_msg = usage_msg + "        matchVlanPriority <VLAN priority>\n"
-  usage_msg = usage_msg + "        matchSrcIPv4Net <source IPv4 network address>\n"
-  usage_msg = usage_msg + "        matchDstIPv4Net <destination IPv4 network address>\n"
-  usage_msg = usage_msg + "        matchIpProto <IP protocol>\n"
-  usage_msg = usage_msg + "        matchIpToS <IP ToS> (DSCP field, 6 bits)\n"
-  usage_msg = usage_msg + "        matchSrcTcpUdpPort <source TCP/UDP port>\n"
-  usage_msg = usage_msg + "        matchDstTcpUdpPort <destination TCP/UDP port>\n"
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "    Actions:\n"
-  usage_msg = usage_msg + "        actionOutput <True|False> (default to True)\n"
-  usage_msg = usage_msg + "        actionSetVlanId <VLAN ID>\n"
-  usage_msg = usage_msg + "        actionSetVlanPriority <VLAN priority>\n"
-  usage_msg = usage_msg + "        actionStripVlan <True|False>\n"
-  usage_msg = usage_msg + "        actionSetEthernetSrcAddr <source MAC address>\n"
-  usage_msg = usage_msg + "        actionSetEthernetDstAddr <destination MAC address>\n"
-  usage_msg = usage_msg + "        actionSetIPv4SrcAddr <source IPv4 address>\n"
-  usage_msg = usage_msg + "        actionSetIPv4DstAddr <destination IPv4 address>\n"
-  usage_msg = usage_msg + "        actionSetIpToS <IP ToS> (DSCP field, 6 bits)\n"
-  usage_msg = usage_msg + "        actionSetTcpUdpSrcPort <source TCP/UDP port>\n"
-  usage_msg = usage_msg + "        actionSetTcpUdpDstPort <destination TCP/UDP port>\n"
-  usage_msg = usage_msg + "    Actions (not implemented yet):\n"
-  usage_msg = usage_msg + "        actionEnqueue <dummy argument>\n"
-
-  # app.debug = False;
-
-  # Usage info
-  if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"):
-    print(usage_msg)
-    exit(0)
-
-  #
-  # Check the flags
-  #
-  start_argv_index = 1
-  idx = 1
-  while idx < len(sys.argv):
-    arg1 = sys.argv[idx]
-    idx = idx + 1
-    if arg1 == "-m":
-      MonitoringEnabled = True
-      if idx < len(sys.argv):
-	arg2 = sys.argv[idx]
-	if arg2.lower() == "onos":
-	  MonitoringByOnos = True
-	  idx = idx + 1
-      start_argv_index = idx
-    elif arg1 == "-f":
-      if idx >= len(sys.argv):
-	error_arg = "ERROR: Missing or invalid '" + arg1 + "' argument"
-	log_error(error_arg)
-	log_error(usage_msg)
-	exit(1)
-      ReadFromFile = sys.argv[idx]
-      idx = idx + 1
-      start_argv_index = idx
-    else:
-      break;
-
-  #
-  # Read the arguments from a file or from the remaining command line options
-  #
-  my_lines = []
-  if len(ReadFromFile) > 0:
-    f = open(ReadFromFile, "rt")
-    my_line = f.readline()
-    while my_line:
-      if len(my_line.rstrip()) > 0 and my_line[0] != "#":
-	my_token_line = my_line.rstrip().split()
-	my_lines.append(my_token_line)
-      my_line = f.readline()
-  else:
-    my_lines.append(copy.deepcopy(sys.argv[start_argv_index:]))
-
-  #
-  # Initialization
-  #
-  last_data_paths = []
-  parsed_args = []
-  idx = 0
-  while idx < len(my_lines):
-    last_data_path = []
-    last_data_paths.append(copy.deepcopy(last_data_path))
-    #
-    # Parse the flow arguments
-    #
-    my_args = my_lines[idx]
-    parsed_args.append(copy.deepcopy(extract_flow_args(my_args)))
-    # Cleanup leftover state
-    my_flow_id = parsed_args[idx]['my_flow_id']
-    delete_flow_path(my_flow_id)
-
-    idx = idx + 1
-
-  #
-  if MonitoringByOnos == True:
-    exec_monitoring_by_onos(parsed_args)
-  else:
-    exec_processing_by_script(parsed_args)
-
diff --git a/scripts/delete_flow.py b/scripts/delete_flow.py
deleted file mode 100755
index d38e915..0000000
--- a/scripts/delete_flow.py
+++ /dev/null
@@ -1,81 +0,0 @@
-#! /usr/bin/env python
-# -*- Mode: python; py-indent-offset: 4; tab-width: 8; indent-tabs-mode: t; -*-
-
-import pprint
-import os
-import sys
-import subprocess
-import json
-import argparse
-import io
-import time
-
-from flask import Flask, json, Response, render_template, make_response, request
-
-#
-# TODO: remove this! We don't use JSON argument here!
-# curl http://127.0.0.1:8080/wm/onos/flows/delete/{"value":"0xf"}/json'
-#
-
-## Global Var ##
-ControllerIP="127.0.0.1"
-ControllerPort=8080
-
-DEBUG=0
-pp = pprint.PrettyPrinter(indent=4)
-
-app = Flask(__name__)
-
-## Worker Functions ##
-def log_error(txt):
-  print '%s' % (txt)
-
-def debug(txt):
-  if DEBUG:
-    print '%s' % (txt)
-
-# @app.route("/wm/onos/flows/delete/<flow-id>/json")
-def delete_flow_path(flow_id):
-  command = "curl -s \"http://%s:%s/wm/onos/flows/delete/%s/json\"" % (ControllerIP, ControllerPort, flow_id)
-  debug("delete_flow_path %s" % command)
-  result = os.popen(command).read()
-  debug("result %s" % result)
-  # parsedResult = json.loads(result)
-  # debug("parsed %s" % parsedResult)
-
-if __name__ == "__main__":
-  usage_msg = "Delete flow state from the ONOS Network Map and the switches\n"
-  usage_msg = usage_msg + "Usage: %s <begin-flow-id> <end-flow-id>\n" % (sys.argv[0])
-  usage_msg = usage_msg + "       %s <flow-id>\n" % (sys.argv[0])
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "    Arguments:\n"
-  usage_msg = usage_msg + "        <begin-flow-id> <end-flow-id>      Delete all flows in the flow ID range\n"
-  usage_msg = usage_msg + "        <flow-id>                          Delete a single flow with the flow ID\n"
-  usage_msg = usage_msg + "        all                                Delete all flows\n"
-
-  # app.debug = False;
-
-  # Usage info
-  if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"):
-    print(usage_msg)
-    exit(0)
-
-  # Check arguments
-  if len(sys.argv) < 2:
-    log_error(usage_msg)
-    exit(1)
-
-  if (sys.argv[1] == "all"):
-    delete_flow_path(sys.argv[1])
-  else:
-    begin_flow_id = int(sys.argv[1], 0)
-    if len(sys.argv) >= 3:
-      end_flow_id = int(sys.argv[2], 0)
-    else:
-      end_flow_id = begin_flow_id
-
-    # Do the work
-    flow_id = begin_flow_id
-    while flow_id <= end_flow_id:
-      delete_flow_path(flow_id)
-      flow_id = flow_id + 1
diff --git a/scripts/flowdef_demo_add.txt b/scripts/flowdef_demo_add.txt
deleted file mode 100644
index 600cd4e..0000000
--- a/scripts/flowdef_demo_add.txt
+++ /dev/null
@@ -1,108 +0,0 @@
-145 ps_73_1 00:00:00:00:00:00:05:02 1 00:00:00:00:00:00:06:02 1 matchSrcMac 00:00:c0:a8:05:02 matchDstMac 00:00:c0:a8:06:02
-146 ps_73_2 00:00:00:00:00:00:06:02 1 00:00:00:00:00:00:05:02 1 matchSrcMac 00:00:c0:a8:06:02 matchDstMac 00:00:c0:a8:05:02
-147 ps_74_1 00:00:00:00:00:00:05:03 1 00:00:00:00:00:00:06:03 1 matchSrcMac 00:00:c0:a8:05:03 matchDstMac 00:00:c0:a8:06:03
-148 ps_74_2 00:00:00:00:00:00:06:03 1 00:00:00:00:00:00:05:03 1 matchSrcMac 00:00:c0:a8:06:03 matchDstMac 00:00:c0:a8:05:03
-149 ps_75_1 00:00:00:00:00:00:05:04 1 00:00:00:00:00:00:06:04 1 matchSrcMac 00:00:c0:a8:05:04 matchDstMac 00:00:c0:a8:06:04
-150 ps_75_2 00:00:00:00:00:00:06:04 1 00:00:00:00:00:00:05:04 1 matchSrcMac 00:00:c0:a8:06:04 matchDstMac 00:00:c0:a8:05:04
-151 ps_76_1 00:00:00:00:00:00:05:05 1 00:00:00:00:00:00:06:05 1 matchSrcMac 00:00:c0:a8:05:05 matchDstMac 00:00:c0:a8:06:05
-152 ps_76_2 00:00:00:00:00:00:06:05 1 00:00:00:00:00:00:05:05 1 matchSrcMac 00:00:c0:a8:06:05 matchDstMac 00:00:c0:a8:05:05
-153 ps_77_1 00:00:00:00:00:00:05:06 1 00:00:00:00:00:00:06:06 1 matchSrcMac 00:00:c0:a8:05:06 matchDstMac 00:00:c0:a8:06:06
-154 ps_77_2 00:00:00:00:00:00:06:06 1 00:00:00:00:00:00:05:06 1 matchSrcMac 00:00:c0:a8:06:06 matchDstMac 00:00:c0:a8:05:06
-155 ps_78_1 00:00:00:00:00:00:05:07 1 00:00:00:00:00:00:06:07 1 matchSrcMac 00:00:c0:a8:05:07 matchDstMac 00:00:c0:a8:06:07
-156 ps_78_2 00:00:00:00:00:00:06:07 1 00:00:00:00:00:00:05:07 1 matchSrcMac 00:00:c0:a8:06:07 matchDstMac 00:00:c0:a8:05:07
-157 ps_79_1 00:00:00:00:00:00:05:08 1 00:00:00:00:00:00:06:08 1 matchSrcMac 00:00:c0:a8:05:08 matchDstMac 00:00:c0:a8:06:08
-158 ps_79_2 00:00:00:00:00:00:06:08 1 00:00:00:00:00:00:05:08 1 matchSrcMac 00:00:c0:a8:06:08 matchDstMac 00:00:c0:a8:05:08
-159 ps_80_1 00:00:00:00:00:00:05:09 1 00:00:00:00:00:00:06:09 1 matchSrcMac 00:00:c0:a8:05:09 matchDstMac 00:00:c0:a8:06:09
-160 ps_80_2 00:00:00:00:00:00:06:09 1 00:00:00:00:00:00:05:09 1 matchSrcMac 00:00:c0:a8:06:09 matchDstMac 00:00:c0:a8:05:09
-161 ps_81_1 00:00:00:00:00:00:05:0a 1 00:00:00:00:00:00:06:0a 1 matchSrcMac 00:00:c0:a8:05:0a matchDstMac 00:00:c0:a8:06:0a
-162 ps_81_2 00:00:00:00:00:00:06:0a 1 00:00:00:00:00:00:05:0a 1 matchSrcMac 00:00:c0:a8:06:0a matchDstMac 00:00:c0:a8:05:0a
-163 ps_82_1 00:00:00:00:00:00:05:02 1 00:00:00:00:00:00:07:02 1 matchSrcMac 00:00:c0:a8:05:02 matchDstMac 00:00:c0:a8:07:02
-164 ps_82_2 00:00:00:00:00:00:07:02 1 00:00:00:00:00:00:05:02 1 matchSrcMac 00:00:c0:a8:07:02 matchDstMac 00:00:c0:a8:05:02
-165 ps_83_1 00:00:00:00:00:00:05:03 1 00:00:00:00:00:00:07:03 1 matchSrcMac 00:00:c0:a8:05:03 matchDstMac 00:00:c0:a8:07:03
-166 ps_83_2 00:00:00:00:00:00:07:03 1 00:00:00:00:00:00:05:03 1 matchSrcMac 00:00:c0:a8:07:03 matchDstMac 00:00:c0:a8:05:03
-167 ps_84_1 00:00:00:00:00:00:05:04 1 00:00:00:00:00:00:07:04 1 matchSrcMac 00:00:c0:a8:05:04 matchDstMac 00:00:c0:a8:07:04
-168 ps_84_2 00:00:00:00:00:00:07:04 1 00:00:00:00:00:00:05:04 1 matchSrcMac 00:00:c0:a8:07:04 matchDstMac 00:00:c0:a8:05:04
-169 ps_85_1 00:00:00:00:00:00:05:05 1 00:00:00:00:00:00:07:05 1 matchSrcMac 00:00:c0:a8:05:05 matchDstMac 00:00:c0:a8:07:05
-170 ps_85_2 00:00:00:00:00:00:07:05 1 00:00:00:00:00:00:05:05 1 matchSrcMac 00:00:c0:a8:07:05 matchDstMac 00:00:c0:a8:05:05
-171 ps_86_1 00:00:00:00:00:00:05:06 1 00:00:00:00:00:00:07:06 1 matchSrcMac 00:00:c0:a8:05:06 matchDstMac 00:00:c0:a8:07:06
-172 ps_86_2 00:00:00:00:00:00:07:06 1 00:00:00:00:00:00:05:06 1 matchSrcMac 00:00:c0:a8:07:06 matchDstMac 00:00:c0:a8:05:06
-173 ps_87_1 00:00:00:00:00:00:05:07 1 00:00:00:00:00:00:07:07 1 matchSrcMac 00:00:c0:a8:05:07 matchDstMac 00:00:c0:a8:07:07
-174 ps_87_2 00:00:00:00:00:00:07:07 1 00:00:00:00:00:00:05:07 1 matchSrcMac 00:00:c0:a8:07:07 matchDstMac 00:00:c0:a8:05:07
-175 ps_88_1 00:00:00:00:00:00:05:08 1 00:00:00:00:00:00:07:08 1 matchSrcMac 00:00:c0:a8:05:08 matchDstMac 00:00:c0:a8:07:08
-176 ps_88_2 00:00:00:00:00:00:07:08 1 00:00:00:00:00:00:05:08 1 matchSrcMac 00:00:c0:a8:07:08 matchDstMac 00:00:c0:a8:05:08
-177 ps_89_1 00:00:00:00:00:00:05:09 1 00:00:00:00:00:00:07:09 1 matchSrcMac 00:00:c0:a8:05:09 matchDstMac 00:00:c0:a8:07:09
-178 ps_89_2 00:00:00:00:00:00:07:09 1 00:00:00:00:00:00:05:09 1 matchSrcMac 00:00:c0:a8:07:09 matchDstMac 00:00:c0:a8:05:09
-179 ps_90_1 00:00:00:00:00:00:05:0a 1 00:00:00:00:00:00:07:0a 1 matchSrcMac 00:00:c0:a8:05:0a matchDstMac 00:00:c0:a8:07:0a
-180 ps_90_2 00:00:00:00:00:00:07:0a 1 00:00:00:00:00:00:05:0a 1 matchSrcMac 00:00:c0:a8:07:0a matchDstMac 00:00:c0:a8:05:0a
-181 ps_91_1 00:00:00:00:00:00:05:02 1 00:00:00:00:00:00:08:02 1 matchSrcMac 00:00:c0:a8:05:02 matchDstMac 00:00:c0:a8:08:02
-182 ps_91_2 00:00:00:00:00:00:08:02 1 00:00:00:00:00:00:05:02 1 matchSrcMac 00:00:c0:a8:08:02 matchDstMac 00:00:c0:a8:05:02
-183 ps_92_1 00:00:00:00:00:00:05:03 1 00:00:00:00:00:00:08:03 1 matchSrcMac 00:00:c0:a8:05:03 matchDstMac 00:00:c0:a8:08:03
-184 ps_92_2 00:00:00:00:00:00:08:03 1 00:00:00:00:00:00:05:03 1 matchSrcMac 00:00:c0:a8:08:03 matchDstMac 00:00:c0:a8:05:03
-185 ps_93_1 00:00:00:00:00:00:05:04 1 00:00:00:00:00:00:08:04 1 matchSrcMac 00:00:c0:a8:05:04 matchDstMac 00:00:c0:a8:08:04
-186 ps_93_2 00:00:00:00:00:00:08:04 1 00:00:00:00:00:00:05:04 1 matchSrcMac 00:00:c0:a8:08:04 matchDstMac 00:00:c0:a8:05:04
-187 ps_94_1 00:00:00:00:00:00:05:05 1 00:00:00:00:00:00:08:05 1 matchSrcMac 00:00:c0:a8:05:05 matchDstMac 00:00:c0:a8:08:05
-188 ps_94_2 00:00:00:00:00:00:08:05 1 00:00:00:00:00:00:05:05 1 matchSrcMac 00:00:c0:a8:08:05 matchDstMac 00:00:c0:a8:05:05
-189 ps_95_1 00:00:00:00:00:00:05:06 1 00:00:00:00:00:00:08:06 1 matchSrcMac 00:00:c0:a8:05:06 matchDstMac 00:00:c0:a8:08:06
-190 ps_95_2 00:00:00:00:00:00:08:06 1 00:00:00:00:00:00:05:06 1 matchSrcMac 00:00:c0:a8:08:06 matchDstMac 00:00:c0:a8:05:06
-191 ps_96_1 00:00:00:00:00:00:05:07 1 00:00:00:00:00:00:08:07 1 matchSrcMac 00:00:c0:a8:05:07 matchDstMac 00:00:c0:a8:08:07
-192 ps_96_2 00:00:00:00:00:00:08:07 1 00:00:00:00:00:00:05:07 1 matchSrcMac 00:00:c0:a8:08:07 matchDstMac 00:00:c0:a8:05:07
-193 ps_97_1 00:00:00:00:00:00:05:08 1 00:00:00:00:00:00:08:08 1 matchSrcMac 00:00:c0:a8:05:08 matchDstMac 00:00:c0:a8:08:08
-194 ps_97_2 00:00:00:00:00:00:08:08 1 00:00:00:00:00:00:05:08 1 matchSrcMac 00:00:c0:a8:08:08 matchDstMac 00:00:c0:a8:05:08
-195 ps_98_1 00:00:00:00:00:00:05:09 1 00:00:00:00:00:00:08:09 1 matchSrcMac 00:00:c0:a8:05:09 matchDstMac 00:00:c0:a8:08:09
-196 ps_98_2 00:00:00:00:00:00:08:09 1 00:00:00:00:00:00:05:09 1 matchSrcMac 00:00:c0:a8:08:09 matchDstMac 00:00:c0:a8:05:09
-197 ps_99_1 00:00:00:00:00:00:05:0a 1 00:00:00:00:00:00:08:0a 1 matchSrcMac 00:00:c0:a8:05:0a matchDstMac 00:00:c0:a8:08:0a
-198 ps_99_2 00:00:00:00:00:00:08:0a 1 00:00:00:00:00:00:05:0a 1 matchSrcMac 00:00:c0:a8:08:0a matchDstMac 00:00:c0:a8:05:0a
-199 ps_100_1 00:00:00:00:00:00:06:02 1 00:00:00:00:00:00:07:02 1 matchSrcMac 00:00:c0:a8:06:02 matchDstMac 00:00:c0:a8:07:02
-200 ps_100_2 00:00:00:00:00:00:07:02 1 00:00:00:00:00:00:06:02 1 matchSrcMac 00:00:c0:a8:07:02 matchDstMac 00:00:c0:a8:06:02
-201 ps_101_1 00:00:00:00:00:00:06:03 1 00:00:00:00:00:00:07:03 1 matchSrcMac 00:00:c0:a8:06:03 matchDstMac 00:00:c0:a8:07:03
-202 ps_101_2 00:00:00:00:00:00:07:03 1 00:00:00:00:00:00:06:03 1 matchSrcMac 00:00:c0:a8:07:03 matchDstMac 00:00:c0:a8:06:03
-203 ps_102_1 00:00:00:00:00:00:06:04 1 00:00:00:00:00:00:07:04 1 matchSrcMac 00:00:c0:a8:06:04 matchDstMac 00:00:c0:a8:07:04
-204 ps_102_2 00:00:00:00:00:00:07:04 1 00:00:00:00:00:00:06:04 1 matchSrcMac 00:00:c0:a8:07:04 matchDstMac 00:00:c0:a8:06:04
-205 ps_103_1 00:00:00:00:00:00:06:05 1 00:00:00:00:00:00:07:05 1 matchSrcMac 00:00:c0:a8:06:05 matchDstMac 00:00:c0:a8:07:05
-206 ps_103_2 00:00:00:00:00:00:07:05 1 00:00:00:00:00:00:06:05 1 matchSrcMac 00:00:c0:a8:07:05 matchDstMac 00:00:c0:a8:06:05
-207 ps_104_1 00:00:00:00:00:00:06:06 1 00:00:00:00:00:00:07:06 1 matchSrcMac 00:00:c0:a8:06:06 matchDstMac 00:00:c0:a8:07:06
-208 ps_104_2 00:00:00:00:00:00:07:06 1 00:00:00:00:00:00:06:06 1 matchSrcMac 00:00:c0:a8:07:06 matchDstMac 00:00:c0:a8:06:06
-209 ps_105_1 00:00:00:00:00:00:06:07 1 00:00:00:00:00:00:07:07 1 matchSrcMac 00:00:c0:a8:06:07 matchDstMac 00:00:c0:a8:07:07
-210 ps_105_2 00:00:00:00:00:00:07:07 1 00:00:00:00:00:00:06:07 1 matchSrcMac 00:00:c0:a8:07:07 matchDstMac 00:00:c0:a8:06:07
-211 ps_106_1 00:00:00:00:00:00:06:08 1 00:00:00:00:00:00:07:08 1 matchSrcMac 00:00:c0:a8:06:08 matchDstMac 00:00:c0:a8:07:08
-212 ps_106_2 00:00:00:00:00:00:07:08 1 00:00:00:00:00:00:06:08 1 matchSrcMac 00:00:c0:a8:07:08 matchDstMac 00:00:c0:a8:06:08
-213 ps_107_1 00:00:00:00:00:00:06:09 1 00:00:00:00:00:00:07:09 1 matchSrcMac 00:00:c0:a8:06:09 matchDstMac 00:00:c0:a8:07:09
-214 ps_107_2 00:00:00:00:00:00:07:09 1 00:00:00:00:00:00:06:09 1 matchSrcMac 00:00:c0:a8:07:09 matchDstMac 00:00:c0:a8:06:09
-215 ps_108_1 00:00:00:00:00:00:06:0a 1 00:00:00:00:00:00:07:0a 1 matchSrcMac 00:00:c0:a8:06:0a matchDstMac 00:00:c0:a8:07:0a
-216 ps_108_2 00:00:00:00:00:00:07:0a 1 00:00:00:00:00:00:06:0a 1 matchSrcMac 00:00:c0:a8:07:0a matchDstMac 00:00:c0:a8:06:0a
-217 ps_109_1 00:00:00:00:00:00:06:02 1 00:00:00:00:00:00:08:02 1 matchSrcMac 00:00:c0:a8:06:02 matchDstMac 00:00:c0:a8:08:02
-218 ps_109_2 00:00:00:00:00:00:08:02 1 00:00:00:00:00:00:06:02 1 matchSrcMac 00:00:c0:a8:08:02 matchDstMac 00:00:c0:a8:06:02
-219 ps_110_1 00:00:00:00:00:00:06:03 1 00:00:00:00:00:00:08:03 1 matchSrcMac 00:00:c0:a8:06:03 matchDstMac 00:00:c0:a8:08:03
-220 ps_110_2 00:00:00:00:00:00:08:03 1 00:00:00:00:00:00:06:03 1 matchSrcMac 00:00:c0:a8:08:03 matchDstMac 00:00:c0:a8:06:03
-221 ps_111_1 00:00:00:00:00:00:06:04 1 00:00:00:00:00:00:08:04 1 matchSrcMac 00:00:c0:a8:06:04 matchDstMac 00:00:c0:a8:08:04
-222 ps_111_2 00:00:00:00:00:00:08:04 1 00:00:00:00:00:00:06:04 1 matchSrcMac 00:00:c0:a8:08:04 matchDstMac 00:00:c0:a8:06:04
-223 ps_112_1 00:00:00:00:00:00:06:05 1 00:00:00:00:00:00:08:05 1 matchSrcMac 00:00:c0:a8:06:05 matchDstMac 00:00:c0:a8:08:05
-224 ps_112_2 00:00:00:00:00:00:08:05 1 00:00:00:00:00:00:06:05 1 matchSrcMac 00:00:c0:a8:08:05 matchDstMac 00:00:c0:a8:06:05
-225 ps_113_1 00:00:00:00:00:00:06:06 1 00:00:00:00:00:00:08:06 1 matchSrcMac 00:00:c0:a8:06:06 matchDstMac 00:00:c0:a8:08:06
-226 ps_113_2 00:00:00:00:00:00:08:06 1 00:00:00:00:00:00:06:06 1 matchSrcMac 00:00:c0:a8:08:06 matchDstMac 00:00:c0:a8:06:06
-227 ps_114_1 00:00:00:00:00:00:06:07 1 00:00:00:00:00:00:08:07 1 matchSrcMac 00:00:c0:a8:06:07 matchDstMac 00:00:c0:a8:08:07
-228 ps_114_2 00:00:00:00:00:00:08:07 1 00:00:00:00:00:00:06:07 1 matchSrcMac 00:00:c0:a8:08:07 matchDstMac 00:00:c0:a8:06:07
-229 ps_115_1 00:00:00:00:00:00:06:08 1 00:00:00:00:00:00:08:08 1 matchSrcMac 00:00:c0:a8:06:08 matchDstMac 00:00:c0:a8:08:08
-230 ps_115_2 00:00:00:00:00:00:08:08 1 00:00:00:00:00:00:06:08 1 matchSrcMac 00:00:c0:a8:08:08 matchDstMac 00:00:c0:a8:06:08
-231 ps_116_1 00:00:00:00:00:00:06:09 1 00:00:00:00:00:00:08:09 1 matchSrcMac 00:00:c0:a8:06:09 matchDstMac 00:00:c0:a8:08:09
-232 ps_116_2 00:00:00:00:00:00:08:09 1 00:00:00:00:00:00:06:09 1 matchSrcMac 00:00:c0:a8:08:09 matchDstMac 00:00:c0:a8:06:09
-233 ps_117_1 00:00:00:00:00:00:06:0a 1 00:00:00:00:00:00:08:0a 1 matchSrcMac 00:00:c0:a8:06:0a matchDstMac 00:00:c0:a8:08:0a
-234 ps_117_2 00:00:00:00:00:00:08:0a 1 00:00:00:00:00:00:06:0a 1 matchSrcMac 00:00:c0:a8:08:0a matchDstMac 00:00:c0:a8:06:0a
-235 ps_118_1 00:00:00:00:00:00:07:02 1 00:00:00:00:00:00:08:02 1 matchSrcMac 00:00:c0:a8:07:02 matchDstMac 00:00:c0:a8:08:02
-236 ps_118_2 00:00:00:00:00:00:08:02 1 00:00:00:00:00:00:07:02 1 matchSrcMac 00:00:c0:a8:08:02 matchDstMac 00:00:c0:a8:07:02
-237 ps_119_1 00:00:00:00:00:00:07:03 1 00:00:00:00:00:00:08:03 1 matchSrcMac 00:00:c0:a8:07:03 matchDstMac 00:00:c0:a8:08:03
-238 ps_119_2 00:00:00:00:00:00:08:03 1 00:00:00:00:00:00:07:03 1 matchSrcMac 00:00:c0:a8:08:03 matchDstMac 00:00:c0:a8:07:03
-239 ps_120_1 00:00:00:00:00:00:07:04 1 00:00:00:00:00:00:08:04 1 matchSrcMac 00:00:c0:a8:07:04 matchDstMac 00:00:c0:a8:08:04
-240 ps_120_2 00:00:00:00:00:00:08:04 1 00:00:00:00:00:00:07:04 1 matchSrcMac 00:00:c0:a8:08:04 matchDstMac 00:00:c0:a8:07:04
-241 ps_121_1 00:00:00:00:00:00:07:05 1 00:00:00:00:00:00:08:05 1 matchSrcMac 00:00:c0:a8:07:05 matchDstMac 00:00:c0:a8:08:05
-242 ps_121_2 00:00:00:00:00:00:08:05 1 00:00:00:00:00:00:07:05 1 matchSrcMac 00:00:c0:a8:08:05 matchDstMac 00:00:c0:a8:07:05
-243 ps_122_1 00:00:00:00:00:00:07:06 1 00:00:00:00:00:00:08:06 1 matchSrcMac 00:00:c0:a8:07:06 matchDstMac 00:00:c0:a8:08:06
-244 ps_122_2 00:00:00:00:00:00:08:06 1 00:00:00:00:00:00:07:06 1 matchSrcMac 00:00:c0:a8:08:06 matchDstMac 00:00:c0:a8:07:06
-245 ps_123_1 00:00:00:00:00:00:07:07 1 00:00:00:00:00:00:08:07 1 matchSrcMac 00:00:c0:a8:07:07 matchDstMac 00:00:c0:a8:08:07
-246 ps_123_2 00:00:00:00:00:00:08:07 1 00:00:00:00:00:00:07:07 1 matchSrcMac 00:00:c0:a8:08:07 matchDstMac 00:00:c0:a8:07:07
-247 ps_124_1 00:00:00:00:00:00:07:08 1 00:00:00:00:00:00:08:08 1 matchSrcMac 00:00:c0:a8:07:08 matchDstMac 00:00:c0:a8:08:08
-248 ps_124_2 00:00:00:00:00:00:08:08 1 00:00:00:00:00:00:07:08 1 matchSrcMac 00:00:c0:a8:08:08 matchDstMac 00:00:c0:a8:07:08
-249 ps_125_1 00:00:00:00:00:00:07:09 1 00:00:00:00:00:00:08:09 1 matchSrcMac 00:00:c0:a8:07:09 matchDstMac 00:00:c0:a8:08:09
-250 ps_125_2 00:00:00:00:00:00:08:09 1 00:00:00:00:00:00:07:09 1 matchSrcMac 00:00:c0:a8:08:09 matchDstMac 00:00:c0:a8:07:09
-251 ps_126_1 00:00:00:00:00:00:07:0a 1 00:00:00:00:00:00:08:0a 1 matchSrcMac 00:00:c0:a8:07:0a matchDstMac 00:00:c0:a8:08:0a
-252 ps_126_2 00:00:00:00:00:00:08:0a 1 00:00:00:00:00:00:07:0a 1 matchSrcMac 00:00:c0:a8:08:0a matchDstMac 00:00:c0:a8:07:0a
diff --git a/scripts/flowdef_demo_start.txt b/scripts/flowdef_demo_start.txt
deleted file mode 100644
index 507cc93..0000000
--- a/scripts/flowdef_demo_start.txt
+++ /dev/null
@@ -1,144 +0,0 @@
-1 ps_1_1 00:00:00:00:00:00:02:02 1 00:00:00:00:00:00:03:02 1 matchSrcMac 00:00:c0:a8:02:02 matchDstMac 00:00:c0:a8:03:02
-2 ps_1_2 00:00:00:00:00:00:03:02 1 00:00:00:00:00:00:02:02 1 matchSrcMac 00:00:c0:a8:03:02 matchDstMac 00:00:c0:a8:02:02
-3 ps_2_1 00:00:00:00:00:00:02:03 1 00:00:00:00:00:00:03:03 1 matchSrcMac 00:00:c0:a8:02:03 matchDstMac 00:00:c0:a8:03:03
-4 ps_2_2 00:00:00:00:00:00:03:03 1 00:00:00:00:00:00:02:03 1 matchSrcMac 00:00:c0:a8:03:03 matchDstMac 00:00:c0:a8:02:03
-5 ps_3_1 00:00:00:00:00:00:02:04 1 00:00:00:00:00:00:03:04 1 matchSrcMac 00:00:c0:a8:02:04 matchDstMac 00:00:c0:a8:03:04
-6 ps_3_2 00:00:00:00:00:00:03:04 1 00:00:00:00:00:00:02:04 1 matchSrcMac 00:00:c0:a8:03:04 matchDstMac 00:00:c0:a8:02:04
-7 ps_4_1 00:00:00:00:00:00:02:05 1 00:00:00:00:00:00:03:05 1 matchSrcMac 00:00:c0:a8:02:05 matchDstMac 00:00:c0:a8:03:05
-8 ps_4_2 00:00:00:00:00:00:03:05 1 00:00:00:00:00:00:02:05 1 matchSrcMac 00:00:c0:a8:03:05 matchDstMac 00:00:c0:a8:02:05
-9 ps_5_1 00:00:00:00:00:00:02:06 1 00:00:00:00:00:00:03:06 1 matchSrcMac 00:00:c0:a8:02:06 matchDstMac 00:00:c0:a8:03:06
-10 ps_5_2 00:00:00:00:00:00:03:06 1 00:00:00:00:00:00:02:06 1 matchSrcMac 00:00:c0:a8:03:06 matchDstMac 00:00:c0:a8:02:06
-11 ps_6_1 00:00:00:00:00:00:02:07 1 00:00:00:00:00:00:03:07 1 matchSrcMac 00:00:c0:a8:02:07 matchDstMac 00:00:c0:a8:03:07
-12 ps_6_2 00:00:00:00:00:00:03:07 1 00:00:00:00:00:00:02:07 1 matchSrcMac 00:00:c0:a8:03:07 matchDstMac 00:00:c0:a8:02:07
-13 ps_7_1 00:00:00:00:00:00:02:08 1 00:00:00:00:00:00:03:08 1 matchSrcMac 00:00:c0:a8:02:08 matchDstMac 00:00:c0:a8:03:08
-14 ps_7_2 00:00:00:00:00:00:03:08 1 00:00:00:00:00:00:02:08 1 matchSrcMac 00:00:c0:a8:03:08 matchDstMac 00:00:c0:a8:02:08
-15 ps_8_1 00:00:00:00:00:00:02:09 1 00:00:00:00:00:00:03:09 1 matchSrcMac 00:00:c0:a8:02:09 matchDstMac 00:00:c0:a8:03:09
-16 ps_8_2 00:00:00:00:00:00:03:09 1 00:00:00:00:00:00:02:09 1 matchSrcMac 00:00:c0:a8:03:09 matchDstMac 00:00:c0:a8:02:09
-17 ps_9_1 00:00:00:00:00:00:02:0a 1 00:00:00:00:00:00:03:0a 1 matchSrcMac 00:00:c0:a8:02:0a matchDstMac 00:00:c0:a8:03:0a
-18 ps_9_2 00:00:00:00:00:00:03:0a 1 00:00:00:00:00:00:02:0a 1 matchSrcMac 00:00:c0:a8:03:0a matchDstMac 00:00:c0:a8:02:0a
-19 ps_10_1 00:00:00:00:00:00:02:0b 1 00:00:00:00:00:00:03:0b 1 matchSrcMac 00:00:c0:a8:02:0b matchDstMac 00:00:c0:a8:03:0b
-20 ps_10_2 00:00:00:00:00:00:03:0b 1 00:00:00:00:00:00:02:0b 1 matchSrcMac 00:00:c0:a8:03:0b matchDstMac 00:00:c0:a8:02:0b
-21 ps_11_1 00:00:00:00:00:00:02:0c 1 00:00:00:00:00:00:03:0c 1 matchSrcMac 00:00:c0:a8:02:0c matchDstMac 00:00:c0:a8:03:0c
-22 ps_11_2 00:00:00:00:00:00:03:0c 1 00:00:00:00:00:00:02:0c 1 matchSrcMac 00:00:c0:a8:03:0c matchDstMac 00:00:c0:a8:02:0c
-23 ps_12_1 00:00:00:00:00:00:02:0d 1 00:00:00:00:00:00:03:0d 1 matchSrcMac 00:00:c0:a8:02:0d matchDstMac 00:00:c0:a8:03:0d
-24 ps_12_2 00:00:00:00:00:00:03:0d 1 00:00:00:00:00:00:02:0d 1 matchSrcMac 00:00:c0:a8:03:0d matchDstMac 00:00:c0:a8:02:0d
-25 ps_13_1 00:00:00:00:00:00:02:0e 1 00:00:00:00:00:00:03:0e 1 matchSrcMac 00:00:c0:a8:02:0e matchDstMac 00:00:c0:a8:03:0e
-26 ps_13_2 00:00:00:00:00:00:03:0e 1 00:00:00:00:00:00:02:0e 1 matchSrcMac 00:00:c0:a8:03:0e matchDstMac 00:00:c0:a8:02:0e
-27 ps_14_1 00:00:00:00:00:00:02:0f 1 00:00:00:00:00:00:03:0f 1 matchSrcMac 00:00:c0:a8:02:0f matchDstMac 00:00:c0:a8:03:0f
-28 ps_14_2 00:00:00:00:00:00:03:0f 1 00:00:00:00:00:00:02:0f 1 matchSrcMac 00:00:c0:a8:03:0f matchDstMac 00:00:c0:a8:02:0f
-29 ps_15_1 00:00:00:00:00:00:02:10 1 00:00:00:00:00:00:03:10 1 matchSrcMac 00:00:c0:a8:02:10 matchDstMac 00:00:c0:a8:03:10
-30 ps_15_2 00:00:00:00:00:00:03:10 1 00:00:00:00:00:00:02:10 1 matchSrcMac 00:00:c0:a8:03:10 matchDstMac 00:00:c0:a8:02:10
-31 ps_16_1 00:00:00:00:00:00:02:11 1 00:00:00:00:00:00:03:11 1 matchSrcMac 00:00:c0:a8:02:11 matchDstMac 00:00:c0:a8:03:11
-32 ps_16_2 00:00:00:00:00:00:03:11 1 00:00:00:00:00:00:02:11 1 matchSrcMac 00:00:c0:a8:03:11 matchDstMac 00:00:c0:a8:02:11
-33 ps_17_1 00:00:00:00:00:00:02:12 1 00:00:00:00:00:00:03:12 1 matchSrcMac 00:00:c0:a8:02:12 matchDstMac 00:00:c0:a8:03:12
-34 ps_17_2 00:00:00:00:00:00:03:12 1 00:00:00:00:00:00:02:12 1 matchSrcMac 00:00:c0:a8:03:12 matchDstMac 00:00:c0:a8:02:12
-35 ps_18_1 00:00:00:00:00:00:02:13 1 00:00:00:00:00:00:03:13 1 matchSrcMac 00:00:c0:a8:02:13 matchDstMac 00:00:c0:a8:03:13
-36 ps_18_2 00:00:00:00:00:00:03:13 1 00:00:00:00:00:00:02:13 1 matchSrcMac 00:00:c0:a8:03:13 matchDstMac 00:00:c0:a8:02:13
-37 ps_19_1 00:00:00:00:00:00:02:14 1 00:00:00:00:00:00:03:14 1 matchSrcMac 00:00:c0:a8:02:14 matchDstMac 00:00:c0:a8:03:14
-38 ps_19_2 00:00:00:00:00:00:03:14 1 00:00:00:00:00:00:02:14 1 matchSrcMac 00:00:c0:a8:03:14 matchDstMac 00:00:c0:a8:02:14
-39 ps_20_1 00:00:00:00:00:00:02:15 1 00:00:00:00:00:00:03:15 1 matchSrcMac 00:00:c0:a8:02:15 matchDstMac 00:00:c0:a8:03:15
-40 ps_20_2 00:00:00:00:00:00:03:15 1 00:00:00:00:00:00:02:15 1 matchSrcMac 00:00:c0:a8:03:15 matchDstMac 00:00:c0:a8:02:15
-41 ps_21_1 00:00:00:00:00:00:02:16 1 00:00:00:00:00:00:03:16 1 matchSrcMac 00:00:c0:a8:02:16 matchDstMac 00:00:c0:a8:03:16
-42 ps_21_2 00:00:00:00:00:00:03:16 1 00:00:00:00:00:00:02:16 1 matchSrcMac 00:00:c0:a8:03:16 matchDstMac 00:00:c0:a8:02:16
-43 ps_22_1 00:00:00:00:00:00:02:17 1 00:00:00:00:00:00:03:17 1 matchSrcMac 00:00:c0:a8:02:17 matchDstMac 00:00:c0:a8:03:17
-44 ps_22_2 00:00:00:00:00:00:03:17 1 00:00:00:00:00:00:02:17 1 matchSrcMac 00:00:c0:a8:03:17 matchDstMac 00:00:c0:a8:02:17
-45 ps_23_1 00:00:00:00:00:00:02:18 1 00:00:00:00:00:00:03:18 1 matchSrcMac 00:00:c0:a8:02:18 matchDstMac 00:00:c0:a8:03:18
-46 ps_23_2 00:00:00:00:00:00:03:18 1 00:00:00:00:00:00:02:18 1 matchSrcMac 00:00:c0:a8:03:18 matchDstMac 00:00:c0:a8:02:18
-47 ps_24_1 00:00:00:00:00:00:02:19 1 00:00:00:00:00:00:03:19 1 matchSrcMac 00:00:c0:a8:02:19 matchDstMac 00:00:c0:a8:03:19
-48 ps_24_2 00:00:00:00:00:00:03:19 1 00:00:00:00:00:00:02:19 1 matchSrcMac 00:00:c0:a8:03:19 matchDstMac 00:00:c0:a8:02:19
-49 ps_25_1 00:00:00:00:00:00:02:02 1 00:00:00:00:00:00:04:02 1 matchSrcMac 00:00:c0:a8:02:02 matchDstMac 00:00:c0:a8:04:02
-50 ps_25_2 00:00:00:00:00:00:04:02 1 00:00:00:00:00:00:02:02 1 matchSrcMac 00:00:c0:a8:04:02 matchDstMac 00:00:c0:a8:02:02
-51 ps_26_1 00:00:00:00:00:00:02:03 1 00:00:00:00:00:00:04:03 1 matchSrcMac 00:00:c0:a8:02:03 matchDstMac 00:00:c0:a8:04:03
-52 ps_26_2 00:00:00:00:00:00:04:03 1 00:00:00:00:00:00:02:03 1 matchSrcMac 00:00:c0:a8:04:03 matchDstMac 00:00:c0:a8:02:03
-53 ps_27_1 00:00:00:00:00:00:02:04 1 00:00:00:00:00:00:04:04 1 matchSrcMac 00:00:c0:a8:02:04 matchDstMac 00:00:c0:a8:04:04
-54 ps_27_2 00:00:00:00:00:00:04:04 1 00:00:00:00:00:00:02:04 1 matchSrcMac 00:00:c0:a8:04:04 matchDstMac 00:00:c0:a8:02:04
-55 ps_28_1 00:00:00:00:00:00:02:05 1 00:00:00:00:00:00:04:05 1 matchSrcMac 00:00:c0:a8:02:05 matchDstMac 00:00:c0:a8:04:05
-56 ps_28_2 00:00:00:00:00:00:04:05 1 00:00:00:00:00:00:02:05 1 matchSrcMac 00:00:c0:a8:04:05 matchDstMac 00:00:c0:a8:02:05
-57 ps_29_1 00:00:00:00:00:00:02:06 1 00:00:00:00:00:00:04:06 1 matchSrcMac 00:00:c0:a8:02:06 matchDstMac 00:00:c0:a8:04:06
-58 ps_29_2 00:00:00:00:00:00:04:06 1 00:00:00:00:00:00:02:06 1 matchSrcMac 00:00:c0:a8:04:06 matchDstMac 00:00:c0:a8:02:06
-59 ps_30_1 00:00:00:00:00:00:02:07 1 00:00:00:00:00:00:04:07 1 matchSrcMac 00:00:c0:a8:02:07 matchDstMac 00:00:c0:a8:04:07
-60 ps_30_2 00:00:00:00:00:00:04:07 1 00:00:00:00:00:00:02:07 1 matchSrcMac 00:00:c0:a8:04:07 matchDstMac 00:00:c0:a8:02:07
-61 ps_31_1 00:00:00:00:00:00:02:08 1 00:00:00:00:00:00:04:08 1 matchSrcMac 00:00:c0:a8:02:08 matchDstMac 00:00:c0:a8:04:08
-62 ps_31_2 00:00:00:00:00:00:04:08 1 00:00:00:00:00:00:02:08 1 matchSrcMac 00:00:c0:a8:04:08 matchDstMac 00:00:c0:a8:02:08
-63 ps_32_1 00:00:00:00:00:00:02:09 1 00:00:00:00:00:00:04:09 1 matchSrcMac 00:00:c0:a8:02:09 matchDstMac 00:00:c0:a8:04:09
-64 ps_32_2 00:00:00:00:00:00:04:09 1 00:00:00:00:00:00:02:09 1 matchSrcMac 00:00:c0:a8:04:09 matchDstMac 00:00:c0:a8:02:09
-65 ps_33_1 00:00:00:00:00:00:02:0a 1 00:00:00:00:00:00:04:0a 1 matchSrcMac 00:00:c0:a8:02:0a matchDstMac 00:00:c0:a8:04:0a
-66 ps_33_2 00:00:00:00:00:00:04:0a 1 00:00:00:00:00:00:02:0a 1 matchSrcMac 00:00:c0:a8:04:0a matchDstMac 00:00:c0:a8:02:0a
-67 ps_34_1 00:00:00:00:00:00:02:0b 1 00:00:00:00:00:00:04:0b 1 matchSrcMac 00:00:c0:a8:02:0b matchDstMac 00:00:c0:a8:04:0b
-68 ps_34_2 00:00:00:00:00:00:04:0b 1 00:00:00:00:00:00:02:0b 1 matchSrcMac 00:00:c0:a8:04:0b matchDstMac 00:00:c0:a8:02:0b
-69 ps_35_1 00:00:00:00:00:00:02:0c 1 00:00:00:00:00:00:04:0c 1 matchSrcMac 00:00:c0:a8:02:0c matchDstMac 00:00:c0:a8:04:0c
-70 ps_35_2 00:00:00:00:00:00:04:0c 1 00:00:00:00:00:00:02:0c 1 matchSrcMac 00:00:c0:a8:04:0c matchDstMac 00:00:c0:a8:02:0c
-71 ps_36_1 00:00:00:00:00:00:02:0d 1 00:00:00:00:00:00:04:0d 1 matchSrcMac 00:00:c0:a8:02:0d matchDstMac 00:00:c0:a8:04:0d
-72 ps_36_2 00:00:00:00:00:00:04:0d 1 00:00:00:00:00:00:02:0d 1 matchSrcMac 00:00:c0:a8:04:0d matchDstMac 00:00:c0:a8:02:0d
-73 ps_37_1 00:00:00:00:00:00:02:0e 1 00:00:00:00:00:00:04:0e 1 matchSrcMac 00:00:c0:a8:02:0e matchDstMac 00:00:c0:a8:04:0e
-74 ps_37_2 00:00:00:00:00:00:04:0e 1 00:00:00:00:00:00:02:0e 1 matchSrcMac 00:00:c0:a8:04:0e matchDstMac 00:00:c0:a8:02:0e
-75 ps_38_1 00:00:00:00:00:00:02:0f 1 00:00:00:00:00:00:04:0f 1 matchSrcMac 00:00:c0:a8:02:0f matchDstMac 00:00:c0:a8:04:0f
-76 ps_38_2 00:00:00:00:00:00:04:0f 1 00:00:00:00:00:00:02:0f 1 matchSrcMac 00:00:c0:a8:04:0f matchDstMac 00:00:c0:a8:02:0f
-77 ps_39_1 00:00:00:00:00:00:02:10 1 00:00:00:00:00:00:04:10 1 matchSrcMac 00:00:c0:a8:02:10 matchDstMac 00:00:c0:a8:04:10
-78 ps_39_2 00:00:00:00:00:00:04:10 1 00:00:00:00:00:00:02:10 1 matchSrcMac 00:00:c0:a8:04:10 matchDstMac 00:00:c0:a8:02:10
-79 ps_40_1 00:00:00:00:00:00:02:11 1 00:00:00:00:00:00:04:11 1 matchSrcMac 00:00:c0:a8:02:11 matchDstMac 00:00:c0:a8:04:11
-80 ps_40_2 00:00:00:00:00:00:04:11 1 00:00:00:00:00:00:02:11 1 matchSrcMac 00:00:c0:a8:04:11 matchDstMac 00:00:c0:a8:02:11
-81 ps_41_1 00:00:00:00:00:00:02:12 1 00:00:00:00:00:00:04:12 1 matchSrcMac 00:00:c0:a8:02:12 matchDstMac 00:00:c0:a8:04:12
-82 ps_41_2 00:00:00:00:00:00:04:12 1 00:00:00:00:00:00:02:12 1 matchSrcMac 00:00:c0:a8:04:12 matchDstMac 00:00:c0:a8:02:12
-83 ps_42_1 00:00:00:00:00:00:02:13 1 00:00:00:00:00:00:04:13 1 matchSrcMac 00:00:c0:a8:02:13 matchDstMac 00:00:c0:a8:04:13
-84 ps_42_2 00:00:00:00:00:00:04:13 1 00:00:00:00:00:00:02:13 1 matchSrcMac 00:00:c0:a8:04:13 matchDstMac 00:00:c0:a8:02:13
-85 ps_43_1 00:00:00:00:00:00:02:14 1 00:00:00:00:00:00:04:14 1 matchSrcMac 00:00:c0:a8:02:14 matchDstMac 00:00:c0:a8:04:14
-86 ps_43_2 00:00:00:00:00:00:04:14 1 00:00:00:00:00:00:02:14 1 matchSrcMac 00:00:c0:a8:04:14 matchDstMac 00:00:c0:a8:02:14
-87 ps_44_1 00:00:00:00:00:00:02:15 1 00:00:00:00:00:00:04:15 1 matchSrcMac 00:00:c0:a8:02:15 matchDstMac 00:00:c0:a8:04:15
-88 ps_44_2 00:00:00:00:00:00:04:15 1 00:00:00:00:00:00:02:15 1 matchSrcMac 00:00:c0:a8:04:15 matchDstMac 00:00:c0:a8:02:15
-89 ps_45_1 00:00:00:00:00:00:02:16 1 00:00:00:00:00:00:04:16 1 matchSrcMac 00:00:c0:a8:02:16 matchDstMac 00:00:c0:a8:04:16
-90 ps_45_2 00:00:00:00:00:00:04:16 1 00:00:00:00:00:00:02:16 1 matchSrcMac 00:00:c0:a8:04:16 matchDstMac 00:00:c0:a8:02:16
-91 ps_46_1 00:00:00:00:00:00:02:17 1 00:00:00:00:00:00:04:17 1 matchSrcMac 00:00:c0:a8:02:17 matchDstMac 00:00:c0:a8:04:17
-92 ps_46_2 00:00:00:00:00:00:04:17 1 00:00:00:00:00:00:02:17 1 matchSrcMac 00:00:c0:a8:04:17 matchDstMac 00:00:c0:a8:02:17
-93 ps_47_1 00:00:00:00:00:00:02:18 1 00:00:00:00:00:00:04:18 1 matchSrcMac 00:00:c0:a8:02:18 matchDstMac 00:00:c0:a8:04:18
-94 ps_47_2 00:00:00:00:00:00:04:18 1 00:00:00:00:00:00:02:18 1 matchSrcMac 00:00:c0:a8:04:18 matchDstMac 00:00:c0:a8:02:18
-95 ps_48_1 00:00:00:00:00:00:02:19 1 00:00:00:00:00:00:04:19 1 matchSrcMac 00:00:c0:a8:02:19 matchDstMac 00:00:c0:a8:04:19
-96 ps_48_2 00:00:00:00:00:00:04:19 1 00:00:00:00:00:00:02:19 1 matchSrcMac 00:00:c0:a8:04:19 matchDstMac 00:00:c0:a8:02:19
-97 ps_49_1 00:00:00:00:00:00:03:02 1 00:00:00:00:00:00:04:02 1 matchSrcMac 00:00:c0:a8:03:02 matchDstMac 00:00:c0:a8:04:02
-98 ps_49_2 00:00:00:00:00:00:04:02 1 00:00:00:00:00:00:03:02 1 matchSrcMac 00:00:c0:a8:04:02 matchDstMac 00:00:c0:a8:03:02
-99 ps_50_1 00:00:00:00:00:00:03:03 1 00:00:00:00:00:00:04:03 1 matchSrcMac 00:00:c0:a8:03:03 matchDstMac 00:00:c0:a8:04:03
-100 ps_50_2 00:00:00:00:00:00:04:03 1 00:00:00:00:00:00:03:03 1 matchSrcMac 00:00:c0:a8:04:03 matchDstMac 00:00:c0:a8:03:03
-101 ps_51_1 00:00:00:00:00:00:03:04 1 00:00:00:00:00:00:04:04 1 matchSrcMac 00:00:c0:a8:03:04 matchDstMac 00:00:c0:a8:04:04
-102 ps_51_2 00:00:00:00:00:00:04:04 1 00:00:00:00:00:00:03:04 1 matchSrcMac 00:00:c0:a8:04:04 matchDstMac 00:00:c0:a8:03:04
-103 ps_52_1 00:00:00:00:00:00:03:05 1 00:00:00:00:00:00:04:05 1 matchSrcMac 00:00:c0:a8:03:05 matchDstMac 00:00:c0:a8:04:05
-104 ps_52_2 00:00:00:00:00:00:04:05 1 00:00:00:00:00:00:03:05 1 matchSrcMac 00:00:c0:a8:04:05 matchDstMac 00:00:c0:a8:03:05
-105 ps_53_1 00:00:00:00:00:00:03:06 1 00:00:00:00:00:00:04:06 1 matchSrcMac 00:00:c0:a8:03:06 matchDstMac 00:00:c0:a8:04:06
-106 ps_53_2 00:00:00:00:00:00:04:06 1 00:00:00:00:00:00:03:06 1 matchSrcMac 00:00:c0:a8:04:06 matchDstMac 00:00:c0:a8:03:06
-107 ps_54_1 00:00:00:00:00:00:03:07 1 00:00:00:00:00:00:04:07 1 matchSrcMac 00:00:c0:a8:03:07 matchDstMac 00:00:c0:a8:04:07
-108 ps_54_2 00:00:00:00:00:00:04:07 1 00:00:00:00:00:00:03:07 1 matchSrcMac 00:00:c0:a8:04:07 matchDstMac 00:00:c0:a8:03:07
-109 ps_55_1 00:00:00:00:00:00:03:08 1 00:00:00:00:00:00:04:08 1 matchSrcMac 00:00:c0:a8:03:08 matchDstMac 00:00:c0:a8:04:08
-110 ps_55_2 00:00:00:00:00:00:04:08 1 00:00:00:00:00:00:03:08 1 matchSrcMac 00:00:c0:a8:04:08 matchDstMac 00:00:c0:a8:03:08
-111 ps_56_1 00:00:00:00:00:00:03:09 1 00:00:00:00:00:00:04:09 1 matchSrcMac 00:00:c0:a8:03:09 matchDstMac 00:00:c0:a8:04:09
-112 ps_56_2 00:00:00:00:00:00:04:09 1 00:00:00:00:00:00:03:09 1 matchSrcMac 00:00:c0:a8:04:09 matchDstMac 00:00:c0:a8:03:09
-113 ps_57_1 00:00:00:00:00:00:03:0a 1 00:00:00:00:00:00:04:0a 1 matchSrcMac 00:00:c0:a8:03:0a matchDstMac 00:00:c0:a8:04:0a
-114 ps_57_2 00:00:00:00:00:00:04:0a 1 00:00:00:00:00:00:03:0a 1 matchSrcMac 00:00:c0:a8:04:0a matchDstMac 00:00:c0:a8:03:0a
-115 ps_58_1 00:00:00:00:00:00:03:0b 1 00:00:00:00:00:00:04:0b 1 matchSrcMac 00:00:c0:a8:03:0b matchDstMac 00:00:c0:a8:04:0b
-116 ps_58_2 00:00:00:00:00:00:04:0b 1 00:00:00:00:00:00:03:0b 1 matchSrcMac 00:00:c0:a8:04:0b matchDstMac 00:00:c0:a8:03:0b
-117 ps_59_1 00:00:00:00:00:00:03:0c 1 00:00:00:00:00:00:04:0c 1 matchSrcMac 00:00:c0:a8:03:0c matchDstMac 00:00:c0:a8:04:0c
-118 ps_59_2 00:00:00:00:00:00:04:0c 1 00:00:00:00:00:00:03:0c 1 matchSrcMac 00:00:c0:a8:04:0c matchDstMac 00:00:c0:a8:03:0c
-119 ps_60_1 00:00:00:00:00:00:03:0d 1 00:00:00:00:00:00:04:0d 1 matchSrcMac 00:00:c0:a8:03:0d matchDstMac 00:00:c0:a8:04:0d
-120 ps_60_2 00:00:00:00:00:00:04:0d 1 00:00:00:00:00:00:03:0d 1 matchSrcMac 00:00:c0:a8:04:0d matchDstMac 00:00:c0:a8:03:0d
-121 ps_61_1 00:00:00:00:00:00:03:0e 1 00:00:00:00:00:00:04:0e 1 matchSrcMac 00:00:c0:a8:03:0e matchDstMac 00:00:c0:a8:04:0e
-122 ps_61_2 00:00:00:00:00:00:04:0e 1 00:00:00:00:00:00:03:0e 1 matchSrcMac 00:00:c0:a8:04:0e matchDstMac 00:00:c0:a8:03:0e
-123 ps_62_1 00:00:00:00:00:00:03:0f 1 00:00:00:00:00:00:04:0f 1 matchSrcMac 00:00:c0:a8:03:0f matchDstMac 00:00:c0:a8:04:0f
-124 ps_62_2 00:00:00:00:00:00:04:0f 1 00:00:00:00:00:00:03:0f 1 matchSrcMac 00:00:c0:a8:04:0f matchDstMac 00:00:c0:a8:03:0f
-125 ps_63_1 00:00:00:00:00:00:03:10 1 00:00:00:00:00:00:04:10 1 matchSrcMac 00:00:c0:a8:03:10 matchDstMac 00:00:c0:a8:04:10
-126 ps_63_2 00:00:00:00:00:00:04:10 1 00:00:00:00:00:00:03:10 1 matchSrcMac 00:00:c0:a8:04:10 matchDstMac 00:00:c0:a8:03:10
-127 ps_64_1 00:00:00:00:00:00:03:11 1 00:00:00:00:00:00:04:11 1 matchSrcMac 00:00:c0:a8:03:11 matchDstMac 00:00:c0:a8:04:11
-128 ps_64_2 00:00:00:00:00:00:04:11 1 00:00:00:00:00:00:03:11 1 matchSrcMac 00:00:c0:a8:04:11 matchDstMac 00:00:c0:a8:03:11
-129 ps_65_1 00:00:00:00:00:00:03:12 1 00:00:00:00:00:00:04:12 1 matchSrcMac 00:00:c0:a8:03:12 matchDstMac 00:00:c0:a8:04:12
-130 ps_65_2 00:00:00:00:00:00:04:12 1 00:00:00:00:00:00:03:12 1 matchSrcMac 00:00:c0:a8:04:12 matchDstMac 00:00:c0:a8:03:12
-131 ps_66_1 00:00:00:00:00:00:03:13 1 00:00:00:00:00:00:04:13 1 matchSrcMac 00:00:c0:a8:03:13 matchDstMac 00:00:c0:a8:04:13
-132 ps_66_2 00:00:00:00:00:00:04:13 1 00:00:00:00:00:00:03:13 1 matchSrcMac 00:00:c0:a8:04:13 matchDstMac 00:00:c0:a8:03:13
-133 ps_67_1 00:00:00:00:00:00:03:14 1 00:00:00:00:00:00:04:14 1 matchSrcMac 00:00:c0:a8:03:14 matchDstMac 00:00:c0:a8:04:14
-134 ps_67_2 00:00:00:00:00:00:04:14 1 00:00:00:00:00:00:03:14 1 matchSrcMac 00:00:c0:a8:04:14 matchDstMac 00:00:c0:a8:03:14
-135 ps_68_1 00:00:00:00:00:00:03:15 1 00:00:00:00:00:00:04:15 1 matchSrcMac 00:00:c0:a8:03:15 matchDstMac 00:00:c0:a8:04:15
-136 ps_68_2 00:00:00:00:00:00:04:15 1 00:00:00:00:00:00:03:15 1 matchSrcMac 00:00:c0:a8:04:15 matchDstMac 00:00:c0:a8:03:15
-137 ps_69_1 00:00:00:00:00:00:03:16 1 00:00:00:00:00:00:04:16 1 matchSrcMac 00:00:c0:a8:03:16 matchDstMac 00:00:c0:a8:04:16
-138 ps_69_2 00:00:00:00:00:00:04:16 1 00:00:00:00:00:00:03:16 1 matchSrcMac 00:00:c0:a8:04:16 matchDstMac 00:00:c0:a8:03:16
-139 ps_70_1 00:00:00:00:00:00:03:17 1 00:00:00:00:00:00:04:17 1 matchSrcMac 00:00:c0:a8:03:17 matchDstMac 00:00:c0:a8:04:17
-140 ps_70_2 00:00:00:00:00:00:04:17 1 00:00:00:00:00:00:03:17 1 matchSrcMac 00:00:c0:a8:04:17 matchDstMac 00:00:c0:a8:03:17
-141 ps_71_1 00:00:00:00:00:00:03:18 1 00:00:00:00:00:00:04:18 1 matchSrcMac 00:00:c0:a8:03:18 matchDstMac 00:00:c0:a8:04:18
-142 ps_71_2 00:00:00:00:00:00:04:18 1 00:00:00:00:00:00:03:18 1 matchSrcMac 00:00:c0:a8:04:18 matchDstMac 00:00:c0:a8:03:18
-143 ps_72_1 00:00:00:00:00:00:03:19 1 00:00:00:00:00:00:04:19 1 matchSrcMac 00:00:c0:a8:03:19 matchDstMac 00:00:c0:a8:04:19
-144 ps_72_2 00:00:00:00:00:00:04:19 1 00:00:00:00:00:00:03:19 1 matchSrcMac 00:00:c0:a8:04:19 matchDstMac 00:00:c0:a8:03:19
diff --git a/scripts/generate_flows.py b/scripts/generate_flows.py
deleted file mode 100755
index 492b8cb..0000000
--- a/scripts/generate_flows.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#! /usr/bin/env python
-# -*- Mode: python; py-indent-offset: 4; tab-width: 8; indent-tabs-mode: t; -*-
-
-#
-# A script for generating a number of flows.
-#
-# The output of the script should be saved to a file, and the flows from
-# that file should be added by the following command:
-#
-#   web/add_flow.py -f filename
-# 
-# NOTE: Currently, some of the parameters fo the flows are hard-coded,
-# and all flows are between same source and destination DPID and ports
-# (differentiated by different matchSrcMac and matchDstMac).
-#
-
-import copy
-import pprint
-import os
-import sys
-import subprocess
-import json
-import argparse
-import io
-import time
-
-## Global Var ##
-
-DEBUG=0
-pp = pprint.PrettyPrinter(indent=4)
-
-## Worker Functions ##
-def log_error(txt):
-  print '%s' % (txt)
-
-def debug(txt):
-  if DEBUG:
-    print '%s' % (txt)
-
-
-if __name__ == "__main__":
-  usage_msg = "Generate a number of flows by using a pre-defined template.\n"
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "NOTE: This script is work-in-progress. Currently all flows are within same\n"
-  usage_msg = usage_msg + "pair of switch ports and contain auto-generated MAC-based matching conditions.\n"
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "Usage: %s <begin-flow-id> <end-flow-id>\n" % (sys.argv[0])
-  usage_msg = usage_msg + "\n"
-  usage_msg = usage_msg + "    The output should be saved to a file, and the flows should be installed\n"
-  usage_msg = usage_msg + "    by using the command './add_flow.py -f filename'\n"
-
-
-  # app.debug = False;
-
-  # Usage info
-  if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"):
-    print(usage_msg)
-    exit(0)
-
-  # Check arguments
-  if len(sys.argv) < 3:
-    log_error(usage_msg)
-    exit(1)
-
-  # Extract the arguments
-  begin_flow_id = int(sys.argv[1], 0)
-  end_flow_id = int(sys.argv[2], 0)
-  if begin_flow_id > end_flow_id:
-    log_error(usage_msg)
-    exit(1)
-
-  #
-  # Do the work
-  #
-  # NOTE: Currently, up to 65536 flows are supported.
-  # More flows can be supported by iterating by, say, iterating over some of
-  # the other bytes of the autogenereated source/destination MAC addresses.
-  #
-  flow_id = begin_flow_id
-  idx = 0
-  while flow_id <= end_flow_id:
-    mac3 = idx / 255
-    mac4 = idx % 255
-    str_mac3 = "%0.2x" % mac3
-    str_mac4 = "%0.2x" % mac4
-    src_mac = "00:00:" + str_mac3 + ":" + str_mac4 + ":00:00";
-    dst_mac = "00:01:" + str_mac3 + ":" + str_mac4 + ":00:00";
-    print "%s FOOBAR 00:00:00:00:00:00:01:01 1 00:00:00:00:00:00:01:0b 1 matchSrcMac %s matchDstMac %s" % (flow_id, src_mac, dst_mac)
-    flow_id = flow_id + 1
-    idx = idx + 1
diff --git a/scripts/get_flow.py b/scripts/get_flow.py
deleted file mode 100755
index bdf89df..0000000
--- a/scripts/get_flow.py
+++ /dev/null
@@ -1,301 +0,0 @@
-#! /usr/bin/env python
-# -*- Mode: python; py-indent-offset: 4; tab-width: 8; indent-tabs-mode: t; -*-
-
-import pprint
-import os
-import sys
-import subprocess
-import json
-import argparse
-import io
-import time
-
-from flask import Flask, json, Response, render_template, make_response, request
-
-## Global Var ##
-ControllerIP="127.0.0.1"
-ControllerPort=8080
-
-DEBUG=0
-pp = pprint.PrettyPrinter(indent=4)
-
-app = Flask(__name__)
-
-## Worker Functions ##
-def log_error(txt):
-  print '%s' % (txt)
-
-def debug(txt):
-  if DEBUG:
-    print '%s' % (txt)
-
-# @app.route("/wm/onos/flows/get/<flow-id>/json")
-# Sample output:
-# {"flowId":{"value":"0x5"},"installerId":{"value":"FOOBAR"},"dataPath":{"srcPort":{"dpid":{"value":"00:00:00:00:00:00:00:01"},"port":{"value":0}},"dstPort":{"dpid":{"value":"00:00:00:00:00:00:00:02"},"port":{"value":0}},"flowEntries":[{"flowEntryId":"0x1389","flowEntryMatch":null,"flowEntryActions":null,"dpid":{"value":"00:00:00:00:00:00:00:01"},"inPort":{"value":0},"outPort":{"value":1},"flowEntryUserState":"FE_USER_DELETE","flowEntrySwitchState":"FE_SWITCH_NOT_UPDATED","flowEntryErrorState":null},{"flowEntryId":"0x138a","flowEntryMatch":null,"flowEntryActions":null,"dpid":{"value":"00:00:00:00:00:00:00:02"},"inPort":{"value":9},"outPort":{"value":0},"flowEntryUserState":"FE_USER_DELETE","flowEntrySwitchState":"FE_SWITCH_NOT_UPDATED","flowEntryErrorState":null}]}}
-
-def parse_match(match):
-  result = []
-
-  inPort = match['inPort']
-  matchInPort = match['matchInPort']
-  srcMac = match['srcMac']
-  matchSrcMac = match['matchSrcMac']
-  dstMac = match['dstMac']
-  matchDstMac = match['matchDstMac']
-  ethernetFrameType = match['ethernetFrameType']
-  matchEthernetFrameType = match['matchEthernetFrameType']
-  vlanId = match['vlanId']
-  matchVlanId = match['matchVlanId']
-  vlanPriority = match['vlanPriority']
-  matchVlanPriority = match['matchVlanPriority']
-  srcIPv4Net = match['srcIPv4Net']
-  matchSrcIPv4Net = match['matchSrcIPv4Net']
-  dstIPv4Net = match['dstIPv4Net']
-  matchDstIPv4Net = match['matchDstIPv4Net']
-  ipProto = match['ipProto']
-  matchIpProto = match['matchIpProto']
-  ipToS = match['ipToS']
-  matchIpToS = match['matchIpToS']
-  srcTcpUdpPort = match['srcTcpUdpPort']
-  matchSrcTcpUdpPort = match['matchSrcTcpUdpPort']
-  dstTcpUdpPort = match['dstTcpUdpPort']
-  matchDstTcpUdpPort = match['matchDstTcpUdpPort']
-  if matchInPort == True:
-    r = "inPort: %s" % inPort['value']
-    result.append(r)
-  if matchSrcMac == True:
-    r = "srcMac: %s" % srcMac['value']
-    result.append(r)
-  if matchDstMac == True:
-    r = "dstMac: %s" % dstMac['value']
-    result.append(r)
-  if matchEthernetFrameType == True:
-    r = "ethernetFrameType: %s" % hex(ethernetFrameType)
-    result.append(r)
-  if matchVlanId == True:
-    r = "vlanId: %s" % vlanId
-    result.append(r)
-  if matchVlanPriority == True:
-    r = "vlanPriority: %s" % vlanPriority
-    result.append(r)
-  if matchSrcIPv4Net == True:
-    r = "srcIPv4Net: %s" % srcIPv4Net['value']
-    result.append(r)
-  if matchDstIPv4Net == True:
-    r = "dstIPv4Net: %s" % dstIPv4Net['value']
-    result.append(r)
-  if matchIpProto == True:
-    r = "ipProto: %s" % ipProto
-    result.append(r)
-  if matchIpToS == True:
-    r = "ipToS: %s" % ipToS
-    result.append(r)
-  if matchSrcTcpUdpPort == True:
-    r = "srcTcpUdpPort: %s" % srcTcpUdpPort
-    result.append(r)
-  if matchDstTcpUdpPort == True:
-    r = "dstTcpUdpPort: %s" % dstTcpUdpPort
-    result.append(r)
-
-  return result
-
-
-def parse_actions(actions):
-  result = []
-  for a in actions:
-    actionType = a['actionType']
-    if actionType == "ACTION_OUTPUT":
-      port = a['actionOutput']['port']['value']
-      maxLen = a['actionOutput']['maxLen']
-      r = "actionType: %s port: %s maxLen: %s" % (actionType, port, maxLen)
-      result.append(r)
-    if actionType == "ACTION_SET_VLAN_VID":
-      vlanId = a['actionSetVlanId']['vlanId']
-      r = "actionType: %s vlanId: %s" % (actionType, vlanId)
-      result.append(r)
-    if actionType == "ACTION_SET_VLAN_PCP":
-      vlanPriority = a['actionSetVlanPriority']['vlanPriority']
-      r = "actionType: %s vlanPriority: %s" % (actionType, vlanPriority)
-      result.append(r)
-    if actionType == "ACTION_STRIP_VLAN":
-      stripVlan = a['actionStripVlan']['stripVlan']
-      r = "actionType: %s stripVlan: %s" % (actionType, stripVlan)
-      result.append(r)
-    if actionType == "ACTION_SET_DL_SRC":
-      setEthernetSrcAddr = a['actionSetEthernetSrcAddr']['addr']['value']
-      r = "actionType: %s setEthernetSrcAddr: %s" % (actionType, setEthernetSrcAddr)
-      result.append(r)
-    if actionType == "ACTION_SET_DL_DST":
-      setEthernetDstAddr = a['actionSetEthernetDstAddr']['addr']['value']
-      r = "actionType: %s setEthernetDstAddr: %s" % (actionType, setEthernetDstAddr)
-      result.append(r)
-    if actionType == "ACTION_SET_NW_SRC":
-      setIPv4SrcAddr = a['actionSetIPv4SrcAddr']['addr']['value']
-      r = "actionType: %s setIPv4SrcAddr: %s" % (actionType, setIPv4SrcAddr)
-      result.append(r)
-    if actionType == "ACTION_SET_NW_DST":
-      setIPv4DstAddr = a['actionSetIPv4DstAddr']['addr']['value']
-      r = "actionType: %s setIPv4DstAddr: %s" % (actionType, setIPv4DstAddr)
-      result.append(r)
-    if actionType == "ACTION_SET_NW_TOS":
-      setIpToS = a['actionSetIpToS']['ipToS']
-      r = "actionType: %s setIpToS: %s" % (actionType, setIpToS)
-      result.append(r)
-    if actionType == "ACTION_SET_TP_SRC":
-      setTcpUdpSrcPort = a['actionSetTcpUdpSrcPort']['port']
-      r = "actionType: %s setTcpUdpSrcPort: %s" % (actionType, setTcpUdpSrcPort)
-      result.append(r)
-    if actionType == "ACTION_SET_TP_DST":
-      setTcpUdpDstPort = a['actionSetTcpUdpDstPort']['port']
-      r = "actionType: %s setTcpUdpDstPort: %s" % (actionType, setTcpUdpDstPort)
-      result.append(r)
-    if actionType == "ACTION_ENQUEUE":
-      port = a['actionEnqueue']['port']['value']
-      queueId = a['actionEnqueue']['queueId']
-      r = "actionType: %s port: %s queueId: %s" % (actionType, port, queueId)
-      result.append(r)
-
-  return result
-
-
-def print_flow_path(parsedResult):
-  flowId = parsedResult['flowId']['value']
-  installerId = parsedResult['installerId']['value']
-  flowPathType = parsedResult['flowPathType']
-  flowPathUserState = parsedResult['flowPathUserState']
-  flowPathFlags = parsedResult['flowPathFlags']['flags']
-  idleTimeout = parsedResult['idleTimeout']
-  hardTimeout = parsedResult['hardTimeout']
-  priority = parsedResult['priority']
-  srcSwitch = parsedResult['dataPath']['srcPort']['dpid']['value']
-  srcPort = parsedResult['dataPath']['srcPort']['port']['value']
-  dstSwitch = parsedResult['dataPath']['dstPort']['dpid']['value']
-  dstPort = parsedResult['dataPath']['dstPort']['port']['value']
-  match = parsedResult['flowEntryMatch'];
-  actions = parsedResult['flowEntryActions']['actions']
-
-  flowPathFlagsStr = ""
-  if (flowPathFlags & 0x1):
-    if flowPathFlagsStr:
-      flowPathFlagsStr += ","
-    flowPathFlagsStr += "DISCARD_FIRST_HOP_ENTRY"
-  if (flowPathFlags & 0x2):
-    if flowPathFlagsStr:
-      flowPathFlagsStr += ","
-    flowPathFlagsStr += "KEEP_ONLY_FIRST_HOP_ENTRY"
-
-  print "FlowPath: (flowId = %s installerId = %s flowPathType = %s flowPathUserState = %s flowPathFlags = 0x%x(%s) src = %s/%s dst = %s/%s idleTimeout = %s hardTimeout = %s priority = %s)" % (flowId, installerId, flowPathType, flowPathUserState, flowPathFlags, flowPathFlagsStr, srcSwitch, srcPort, dstSwitch, dstPort, idleTimeout, hardTimeout, priority)
-
-  #
-  # Print the common match conditions
-  #
-  if match == None:
-    print "   Match: %s" % (match)
-  else:
-    parsedMatch = parse_match(match)
-    for l in parsedMatch:
-      print "    %s" % l
-
-  #
-  # Print the actions
-  #
-  parsedActions = parse_actions(actions)
-  for l in parsedActions:
-    print "    %s" % l
-
-  #
-  # Print each Flow Entry
-  #
-  for f in parsedResult['dataPath']['flowEntries']:
-    flowEntryId = f['flowEntryId']
-    idleTimeout = f['idleTimeout']
-    hardTimeout = f['hardTimeout']
-    priority = f['priority']
-    dpid = f['dpid']['value']
-    userState = f['flowEntryUserState']
-    switchState = f['flowEntrySwitchState']
-    match = f['flowEntryMatch'];
-    actions = f['flowEntryActions']['actions']
-
-    print "  FlowEntry: (%s, %s, %s, %s, idleTimeout = %s, hardTimeout = %s, priority = %s)" % (flowEntryId, dpid, userState, switchState, idleTimeout, hardTimeout, priority)
-
-    #
-    # Print the match conditions
-    #
-    if match == None:
-      print "   Match: %s" % (match)
-    else:
-      parsedMatch = parse_match(match)
-      for l in parsedMatch:
-	print "    %s" % l
-    #
-    # Print the actions
-    #
-    parsedActions = parse_actions(actions)
-    for l in parsedActions:
-      print "    %s" % l
-
-
-def get_flow_path(flow_id):
-  try:
-    command = "curl -s \"http://%s:%s/wm/onos/flows/get/%s/json\"" % (ControllerIP, ControllerPort, flow_id)
-    debug("get_flow_path %s" % command)
-
-    result = os.popen(command).read()
-    debug("result %s" % result)
-    if len(result) == 0:
-      print "No Flow found"
-      return;
-
-    parsedResult = json.loads(result)
-    debug("parsed %s" % parsedResult)
-  except:
-    log_error("Controller IF has issue")
-    exit(1)
-
-  print_flow_path(parsedResult)
-
-
-def get_all_flow_paths():
-  try:
-    command = "curl -s \"http://%s:%s/wm/onos/flows/getall/json\"" % (ControllerIP, ControllerPort)
-    debug("get_all_flow_paths %s" % command)
-
-    result = os.popen(command).read()
-    debug("result %s" % result)
-    if len(result) == 0:
-	print "No Flows found"
-	return;
-
-    parsedResult = json.loads(result)
-    debug("parsed %s" % parsedResult)
-  except:
-    log_error("Controller IF has issue")
-    exit(1)
-
-  for flowPath in parsedResult:
-    print_flow_path(flowPath)
-
-if __name__ == "__main__":
-  usage_msg1 = "Usage:\n"
-  usage_msg2 = "%s <flow_id> : Print flow with Flow ID of <flow_id>\n" % (sys.argv[0])
-  usage_msg3 = "                   all    : Print all flows\n"
-  usage_msg = usage_msg1 + usage_msg2 + usage_msg3;
-
-  # app.debug = False;
-
-  # Usage info
-  if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"):
-    print(usage_msg)
-    exit(0)
-
-  # Check arguments
-  if len(sys.argv) < 2:
-    log_error(usage_msg)
-    exit(1)
-
-  # Do the work
-  if sys.argv[1] == "all":
-    get_all_flow_paths()
-  else:
-    get_flow_path(sys.argv[1])
diff --git a/scripts/get_network_graph.py b/scripts/get_network_graph.py
deleted file mode 100755
index d7df070..0000000
--- a/scripts/get_network_graph.py
+++ /dev/null
@@ -1,117 +0,0 @@
-#! /usr/bin/env python
-# -*- Mode: python; py-indent-offset: 4; tab-width: 8; indent-tabs-mode: t; -*-
-
-#
-# Get Network Graph Information:
-#  - Switches
-#  - Links
-#
-
-import pprint
-import os
-import sys
-import subprocess
-import json
-import collections
-import argparse
-import io
-import time
-
-from flask import Flask, json, Response, render_template, make_response, request
-
-## Global Var ##
-ControllerIP="127.0.0.1"
-ControllerPort=8080
-
-DEBUG=0
-pp = pprint.PrettyPrinter(indent=4)
-
-app = Flask(__name__)
-
-## Worker Functions ##
-def log_error(txt):
-  print '%s' % (txt)
-
-def debug(txt):
-  if DEBUG:
-    print '%s' % (txt)
-
-# @app.route("/wm/onos/topology/links ")
-# @app.route("/wm/onos/topology/switches ")
-# Sample output:
-
-def print_parsed_result(parsedResult):
-  print '%s' % (parsedResult),
-
-def get_network_switches():
-  try:
-    command = "curl -s \"http://%s:%s/wm/onos/topology/switches\"" % (ControllerIP, ControllerPort)
-    debug("get_network_switches %s" % command)
-
-    result = os.popen(command).read()
-    debug("result %s" % result)
-    if len(result) == 0:
-      print "No Switches found"
-      return;
-
-    # parsedResult = result
-    # parsedResult = json.loads(result)
-    parsedResult = json.dumps(json.loads(result), indent=4)
-    debug("parsed %s" % parsedResult)
-  except:
-    log_error("Controller IF has issue")
-    exit(1)
-
-  print_parsed_result(parsedResult)
-
-def get_network_links():
-  try:
-    command = "curl -s \"http://%s:%s/wm/onos/topology/links\"" % (ControllerIP, ControllerPort)
-    debug("get_network_links %s" % command)
-
-    result = os.popen(command).read()
-    debug("result %s" % result)
-    if len(result) == 0:
-      print "No Links found"
-      return;
-
-    # parsedResult = result
-    # parsedResult = json.loads(result)
-    parsedResult = json.dumps(json.loads(result), indent=4)
-    debug("parsed %s" % parsedResult)
-  except:
-    log_error("Controller IF has issue")
-    exit(1)
-
-  print_parsed_result(parsedResult)
-
-
-if __name__ == "__main__":
-  usage_msg1 = "Usage:\n"
-  usage_msg2 = "%s <arguments> : Print network information\n" % (sys.argv[0])
-  usage_msg3 = "  Valid element names:\n"
-  usage_msg4 = "    all              : Print all network elements\n"
-  usage_msg5 = "    switches         : Print all switches and ports\n"
-  usage_msg6 = "    links            : Print all links\n"
-  usage_msg = usage_msg1 + usage_msg2 + usage_msg3 + usage_msg4 + usage_msg5
-  usage_msg = usage_msg + usage_msg6
-
-  # Usage info
-  if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"):
-    print(usage_msg)
-    exit(0)
-
-  # Check arguments
-  if len(sys.argv) < 2:
-    log_error(usage_msg)
-    exit(1)
-
-  if (sys.argv[1] != "all" and sys.argv[1] != "switches" and sys.argv[1] != "links"):
-    log_error(usage_msg)
-    exit(1)
-
-  # Do the work
-  if (sys.argv[1] == "all" or sys.argv[1] == "switches"):
-    get_network_switches()
-  if (sys.argv[1] == "all" or sys.argv[1] == "links"):
-    get_network_links()
diff --git a/scripts/shortest_path.py b/scripts/shortest_path.py
deleted file mode 100755
index 805224b..0000000
--- a/scripts/shortest_path.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#! /usr/bin/env python
-# -*- Mode: python; py-indent-offset: 4; tab-width: 8; indent-tabs-mode: t; -*-
-
-import pprint
-import os
-import sys
-import subprocess
-import json
-import argparse
-import io
-import time
-
-from flask import Flask, json, Response, render_template, make_response, request
-
-#
-# curl http://127.0.0.1:8080/wm/onos/topology/route/00:00:00:00:00:00:0a:01/1/00:00:00:00:00:00:0a:04/1/json
-#
-
-## Global Var ##
-ControllerIP="127.0.0.1"
-ControllerPort=8080
-
-DEBUG=0
-pp = pprint.PrettyPrinter(indent=4)
-
-app = Flask(__name__)
-
-## Worker Functions ##
-def log_error(txt):
-  print '%s' % (txt)
-
-def debug(txt):
-  if DEBUG:
-    print '%s' % (txt)
-
-# @app.route("/wm/onos/topology/route/<srcdpid>/<srcport>/<destdpid>/<destport>/json")
-#
-# Sample output:
-# {'dstPort': {'port': {'value': 0}, 'dpid': {'value': '00:00:00:00:00:00:00:02'}}, 'srcPort': {'port': {'value': 0}, 'dpid': {'value': '00:00:00:00:00:00:00:01'}}, 'flowEntries': [{'outPort': {'value': 1}, 'flowEntryErrorState': None, 'flowEntryMatch': None, 'flowEntryActions': None, 'inPort': {'value': 0}, 'flowEntryId': None, 'flowEntryUserState': 'FE_USER_UNKNOWN', 'dpid': {'value': '00:00:00:00:00:00:00:01'}, 'flowEntrySwitchState': 'FE_SWITCH_UNKNOWN'}, {'outPort': {'value': 0}, 'flowEntryErrorState': None, 'flowEntryMatch': None, 'flowEntryActions': None, 'inPort': {'value': 9}, 'flowEntryId': None, 'flowEntryUserState': 'FE_USER_UNKNOWN', 'dpid': {'value': '00:00:00:00:00:00:00:02'}, 'flowEntrySwitchState': 'FE_SWITCH_UNKNOWN'}]}
-#
-def shortest_path(v1, p1, v2, p2):
-  try:
-    command = "curl -s http://%s:%s/wm/onos/topology/route/%s/%s/%s/%s/json" % (ControllerIP, ControllerPort, v1, p1, v2, p2)
-    debug("shortest_path %s" % command)
-
-    result = os.popen(command).read()
-    debug("result %s" % result)
-
-    if len(result) == 0:
-	print "No Path found"
-	return;
-
-    parsedResult = json.loads(result)
-    debug("parsed %s" % parsedResult)
-  except:
-    log_error("Controller IF has issue")
-    exit(1)
-
-  srcSwitch = parsedResult['srcPort']['dpid']['value'];
-  srcPort = parsedResult['srcPort']['port']['value'];
-  dstSwitch = parsedResult['dstPort']['dpid']['value'];
-  dstPort = parsedResult['dstPort']['port']['value'];
-
-  print "DataPath: (src = %s/%s dst = %s/%s)" % (srcSwitch, srcPort, dstSwitch, dstPort);
-
-  for f in parsedResult['flowEntries']:
-    inPort = f['inPort']['value'];
-    outPort = f['outPort']['value'];
-    dpid = f['dpid']['value']
-    print "  FlowEntry: (%s, %s, %s)" % (inPort, dpid, outPort)
-
-
-if __name__ == "__main__":
-  usage_msg = "Compute the shortest path between two switch ports in the Network MAP\n"
-  usage_msg = usage_msg + "Usage: %s <src-dpid> <src-port> <dest-dpid> <dest-port>" % (sys.argv[0])
-
-  # app.debug = False;
-
-  # Usage info
-  if len(sys.argv) > 1 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"):
-    print(usage_msg)
-    exit(0)
-
-  # Check arguments
-  if len(sys.argv) < 5:
-    log_error(usage_msg)
-    exit(1)
-
-  # Do the work
-  shortest_path(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]);