Network Assembly Language for Programmable Data Planes (NetASM)
- Website: http://netasm.cs.princeton.edu/
- Organization: Princeton University
- Contact: mshahbaz@cs.princeton.edu
- Repository:https://github.com/NetASM
- License: GNU GPLv2
Project Description: A Network Assembly Language for Programmable Data Planes
Further info:
NetASM is a network assembler that takes high-level SDN languages (NetKAT, P4, etc.) and maps the primitives to device-specific directives in FPGAs and various chipsets. It's a nascent work on building a network assembly language for programmable network devices (e.g., FPGAs, RMT, Intel’s FlexPipe, NPUs). NetASM provides assembly instructions that directly reflect the capabilities of the underlying device, thus providing either a human programmer or compiler precise, fine-grained control over the device’s resources. It exposes the details in the language such as creating tables and defining layouts of the processing pipeline. It's a glimpse into the future of hardware support for software-defined networking (SDN), where the data plane is no longer a fixed-function device, but rather a fully programmable device whose behavior is dictated by the programmer, with the ability to reconfigure it on-demand.
- Link scientific paper(s) http://www.cs.princeton.edu/~mshahbaz/papers/sosr15-netasm.pdf
- Link whitepaper(s)
Link video(s) https://www.youtube.com/watch?v=BuJCRlFQqSw
- Link presentation(s) http://www.cs.princeton.edu/~mshahbaz/slides/sosr15-netasm.pptx
- Link further resources https://github.com/PrincetonUniversity/Coursera-SDN/blob/master/assignments/learning_switch_acl/README.md