<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="static/style.xsl"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2026-09-21T05:46:47Z</responseDate><request verb="GetRecord" identifier="oai:researchcommons.waikato.ac.nz:10289/13653" metadataPrefix="uketd_dc">https://researchcommons.waikato.ac.nz/server/oai/request</request><GetRecord><record><header><identifier>oai:researchcommons.waikato.ac.nz:10289/13653</identifier><datestamp>2020-06-25T22:25:09Z</datestamp><setSpec>com_10289_2222</setSpec><setSpec>col_10289_2223</setSpec></header><metadata><uketd_dc:uketddc xmlns:uketd_dc="http://naca.central.cranfield.ac.uk/ethos-oai/2.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:uketdterms="http://naca.central.cranfield.ac.uk/ethos-oai/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:doc="http://www.lyncode.com/xoai" xsi:schemaLocation="http://naca.central.cranfield.ac.uk/ethos-oai/2.0/ http://naca.central.cranfield.ac.uk/ethos-oai/2.0/uketd_dc.xsd">
   <dc:title>An algorithmic approach to OpenFlow ruleset transformation</dc:title>
   <dc:creator>Sanger, Richard</dc:creator>
   <uketdterms:advisor>Nelson, Richard</uketdterms:advisor>
   <uketdterms:advisor>Luckie, Matthew John</uketdterms:advisor>
   <uketdterms:advisor>Rogers, Bill</uketdterms:advisor>
   <dcterms:abstract>In an ideal development cycle for an OpenFlow application, a developer designs a pipeline to suit their application's needs and installs rules to that pipeline. Their application will run on any OpenFlow switch, whether software or hardware based. A network operator deploying this application would assess their network's requirements and purchase OpenFlow hardware to meet these requirements; such as bandwidth, port density, and flow table size. In reality, this level of interoperability does not exist as many OpenFlow switches are built on a fixed-function pipeline. Fixed-function pipelines limit the matches and actions available to rules depending on the table, but in doing so make more efficient use of expensive hardware resources such as TCAM.&#xd;
&#xd;
This thesis investigates improving OpenFlow device interoperability by developing a method to rewrite existing rulesets to new complex fixed-function pipelines. Additionally, this thesis developed the tools to assess and verify the interoperability and equivalence of OpenFlow rulesets and pipelines. &#xd;
&#xd;
This thesis developed a library and tools for working with descriptions of fixed-function pipelines, specifically, the Table Type Pattern description. This library provides a method to check if an existing ruleset is compatible with a new pipeline. Additionally, this thesis designed and implemented a pragmatic approach to compare if the forwarding behaviour of two OpenFlow 1.3 rulesets is equivalent. Equivalence checking provides a tool to verify that an OpenFlow application rewritten to program a new pipeline maintains the correct forwarding behaviour.&#xd;
&#xd;
Finally, this thesis investigates the problem of algorithmically rewriting an existing OpenFlow ruleset, programmed by an existing application, to fit a different fixed-function pipeline. Solving this problem allows an OpenFlow application to be written once and run on any OpenFlow switch. This research aimed to solve this problem in a comprehensive manner that did not rely on the target pipeline supporting features such as OpenFlow metadata. This thesis developed and implemented a general method to convert an OpenFlow 1.3 to a complex constrained fixed-function.</dcterms:abstract>
   <uketdterms:institution>The University of Waikato</uketdterms:institution>
   <dcterms:issued>2020</dcterms:issued>
   <dc:type>Thesis</dc:type>
   <dc:language xsi:type="dcterms:ISO639-2">en</dc:language>
   <dcterms:isReferencedBy>https://hdl.handle.net/10289/13653</dcterms:isReferencedBy>
   <dc:identifier xsi:type="dcterms:URI">https://researchcommons.waikato.ac.nz/bitstreams/2405bf81-3350-425b-aa00-e4c1ca513293/download</dc:identifier>
   <uketdterms:checksum xsi:type="uketdterms:MD5">e046a3f17371f9d1c975941968758088</uketdterms:checksum>
   <dcterms:license>https://researchcommons.waikato.ac.nz/bitstreams/24833d48-a6fb-49c2-9aab-eb4b17697e97/download</dcterms:license>
   <uketdterms:checksum xsi:type="uketdterms:MD5">e14202ab27e47ddb00d33097327ba050</uketdterms:checksum>
   <dcterms:hasFormat>https://researchcommons.waikato.ac.nz/bitstreams/e7da46c2-52a8-4ce7-ace0-3f91ed3da4d8/download</dcterms:hasFormat>
   <uketdterms:checksum xsi:type="uketdterms:MD5">f2ab3973db56411cceadd1b395b1dc64</uketdterms:checksum>
   <dc:rights>All items in Research Commons are provided for private study and research purposes and are protected by copyright with all rights reserved unless otherwise indicated.</dc:rights>
</uketd_dc:uketddc></metadata></record></GetRecord></OAI-PMH>