diff --git a/doc/Conclusion.tex b/doc/Conclusion.tex index 7586b30..a2f8048 100644 --- a/doc/Conclusion.tex +++ b/doc/Conclusion.tex @@ -3,24 +3,19 @@ % document. What are the highlights of your work. % It should conclude by a conclusion. -% General / Review +% Intro The objective of implementing high speed NAT64 in P4 has been -achieved. The implementation at hand has been shown to be portable -between 2 different P4 targets. It should be portable with minor -target specific changes to faster hardware to support NAT64 at much -higher line speeds, without any logic changes. +achieved. -Our algorithm uses the IPv4-Compatible IPv6 Address~\cite{rfc4291} to -embed IPv4 addresses. However RFC6052~\cite{rfc6052} defines different -embeddings depending on the prefix size. A future version should -support these schemes to be compatible to other implementations. - -PMTU -handling error cases -No fragmentation -No address / mac learning - -supporting migration to IPv6 only networks +% our implementation! +Our implementation has been shown to be portable +between 2 different P4 targets and we expect it to be portable +to other P4 targets, potentially at much higher speeds. +Our in-network solution allows novel translations +without involving external routers, without involving +external routers.\footnote{Compare + figures \ref{fig:v6v4standard} and \ref{fig:v6v4mixed}.} +We expect this to supporting migration to IPv6 only networks % P4 P4 has been proven for us as a suitable programming language for @@ -30,42 +25,53 @@ work to become usable for solving day-to-day challenges or supporting large scale projects. Even with the current state drawbacks, P4 is a very convincing language that has wide range of applications due to its protocol independence and easy to understand architecture. - -% NetPFGA -The NetFPGA platform is a good showcase for the capabilities of -P4, demonstrating almost line speed P4 programs. -However the supporting code immaturity, logging ambiguity -and enormous complexity of the development process. - -Very time intensive development due to usability problems and -uncertainty of functionality (compare sections -\ref{results:netpfga:usability} and \ref{results:netpfga:stability}). - -While the port to NetPFGA was significantly more effort then expected, -the learnings of the different layers were very much appreciated / liked - -% Outlook OUTLOOK What are the consequences of your work for future work? The availability of protocol independent programmable network equipment opens up many possibilities for in network programming. While this thesis focused on NAT64, the accompanying technology DNS64~\cite{rfc6147} could also be implemented in P4, thus completing the translation mechanism. -Proxies / higher level protocols could be next level +% NetPFGA +In our opinion, the +P4/NetFPGA platform is a good showcase for the capabilities of +P4, demonstrating near line speed P4 programs with good capabilities +of demonstrating scientific research. +However, the supporting code toolchain shows strong weaknesses that +render productive deployements difficult. +% ---------------------------------------------------------------------- +% Outlook -Add helper in P4 to support checksum analysis a frequent problem and -helper -Allow ICMP6 option parsing: specify xtimes 64 bit blocks resulting in -an array +While the project concluded successfully, there are a variety of +possible improvements to our work as well to the used toolchains. -Adding support for passing on meta information to controller: key or -table +% Implementation +The implementation of our algorithm uses the IPv4-Compatible +IPv6 Address~\cite{rfc4291} to embed IPv4 addresses. +However RFC6052~\cite{rfc6052} defines different +embeddings depending on the prefix size. A future version should +not only support more flexible embeddings, but also consider more in +depth translation like ICMP/ICMP6 specifics. -Support a meta language to define used types and/or export to popular languages. -Long term supporting python3 would be helpful. P4OS. +% P4 +The P4 language has shown maturity, but the usability and ease of use +of the provided toolchains can be significantly improved. Additionally +we envision a stronger tie between the different tools in the P4 +environment, like a collection of libraries and modules that could +form something on the line of a ``P4OS''. This operating system could +spawn over network switches with P4, provide a coherent library and +define data definitions that can be used in various programming +languages bindings. +% NetFPGA +The NetFPGA, from the hardware point of view,! is a very +interesting hardware platform. Reducing the difficulties +we experienced with the surrounding toolchain and making +development experience more consistent has the potential to not only +make NetFPGA, but also the who set of P4 hardware more interesting for +developers. - - react on FIN/RST (?) -- could be an addition - P4os - reusable code - - Future work: session handling +%% PMTU +%% handling error cases +%% No fragmentation +%% No address / mac learning +%% session handling diff --git a/doc/Thesis.pdf b/doc/Thesis.pdf index 3c978d7..03652a4 100644 Binary files a/doc/Thesis.pdf and b/doc/Thesis.pdf differ