My prediction from last week was correct. Having familiarized ourselves with MGR and discussed it on Monday, my research group moved on to begin studying the RMT routing technology that came to replace MGR around 2010. RMT replaces the semi-programmable software-routing of MGR with a deterministic pipeline-based programmable architecture implemented in hardware. Understanding MGR first gave us a better idea for what changes RMT introduced and what design decisions were kept from previous research. We studied a pioneering paper from 2013 that described a novel hardware implementation of an RMT router, effectively “an existence proof of RMT” technology (p. 2, Bosshart et. al., 2013). While difficult at times to follow due to the dense technical descriptions, this paper gave us a deeper understanding of the physical and logical structure of an RMT programmable router. I expect this background-knowledge to be invaluable when it comes to programming this physical hardware. To learn such domain-specific router programming, I expect it will help to understand how physical hardware design decisions have informed the logical and virtual structures built on-top.
Once my research group has developed a reasonably strong grasp on the RMT hardware structure, we should be able to move on to learning about the practical software implementations designed to handle programming said hardware. It will be interesting to see how foundational designs of the programmable parser and match/action pipelines are conceptually treated in software. The layers of abstraction built on top of this hardware are really critical in providing the promised functionality of software-defined-networking to an end-user. At the time of the Bosshart et. al. (RMT) paper’s publication, I don’t believe an RMT-compiler existed yet. As I understand it (though I’m not well-versed in this area), compilers serving this purpose do now exist though compiler optimization is an area of active research. I expect as we move on to higher layers of abstraction via software, our progress as a research-team will accelerate. Implementing actual routing behavior on virtualized RMT hardware should really help to concretize the principles we’ve been studying thus-far.