The first four months of the CREASE project

by Nik Sultana on 4 Nov 2024.

Unlike purely-research projects, the CREASE project is heavily biased towards actually building systems that are usable by others — and usable ASAP! The research side of CREASE consists of adapting the ideas of attestation and provenance tracking to the network, and the building side involves developing and deploying new tools for diagnosing, debugging, and reproducing research results on testbeds like FABRIC.

During the first four months of the CREASE project, we started developing both of these sides simultaneously. I particularly enjoy the dual research+building nature of the CREASE project because the "building" part of the project provides as a built-in feedback mechanism for the research's utility. That is, not only do we develop and evaluate new ideas (research), but we must also figure out how best to implement those ideas to benefit others in the near term (building). The building component is also a great vehicle for the research to have impact, an opportunity for the team to develop technical skills (and particularly for students to showcase their skills to future employers), and to develop an ongoing collaboration with the wider research community (who are the intended users of our work). We undertook several initiatives to engage with the wider research community. This engagement includes starting a FABRIC affinity group in Campus Champions, and surveying attendees at KNIT9 and MERIF.

Animation showing evidence information from a network device being received and interpreted.
Fig 1. Early prototype of the "evidential screen" widget that was demo'd in the Stitching Together Innovation with FABRIC Users webinar.
The evidential screen shows evidence information from a network device being received and interpreted. Within CREASE, this visualization is used to show changes that might affect the behavior of network elements and the reproducibility of an experiment.

This blog post describes two aspects of the project related to the "building" side. There are several such isses that we're tackling along the way.

  1. Reducing the time needed to load CREASE tools. When a FABRIC slice is created, time is needed to allocate and prepare the FABRIC resources for that slice. It didn't take us long to notice that several minutes were being spent preparing CREASE-specific resource — and this meant that the scale of CREASE usage (and the topologies involved) was limited by the scarcest resource of all: user patience! Given that we didn't want to contribute to more swivel-chaired sword-fighting, we looked for ways to reduce the time needed to allocate these resources. Fig 2 shows that it now takes a matter of seconds! (Look at post-boot config of attestable switches, which are the resources that CREASE currently makes available.)
  2. User interfaces for CREASE. Our user interface includes the CREASE API of course, but we're also interested in visual and UI aspects of the system. We developed the "evidential screen" idea, which you can see in Fig 1. (To understand this you need to know a bit more about the CREASE project — see the description in our project page and be sure to watch the webinar.) We developed this idea into a custom widget in Jupyter that is included in our demo materials — you can see an evolution of this design in the Stitching Together Innovation with FABRIC Users webinar mentioned previously, and you can download (and extend) its code from the CREASE repo.

Screenshot of a Jupyter notebook example involving CREASE
Fig 2. Screenshot showing that post-boot config of attestable switches is in the low double-digit seconds. Originally each switch took several minutes!

While these applied, "building"-related aspects are ultimately intended to benefit FABRIC users, we also find they that they greatly benefit us too — think of the time we'd otherwise be spending waiting for tests to complete if it took tens of minutes to start the system! In addition to team discussions and community input, a key ingredient to our success so far has been close collaboration with the FABRIC team. They were instrumental in helping us deploy resources for the rest of the FABRIC community to use. These resources include a custom VM image (which ships Alexander Wolosewicz's software!) and an early release of CREASE which was recently upstreamed to fablib. As a result of this work, FABRIC users can use CREASE without having to install anything.

If you're new to CREASE, then your first port of call is the CREASE project page. That page links to key project outputs developed during these first four months — these include the recording and materials related to the FABRIC Webinar about P4 programming, our KNIT9 presentations and MERIF demos. Those materials can get you started using CREASE and offer a glimpse of what else we have planned.

There's a lot more on the way — our roadmap includes several features and demo materials that are currently under development. If you're a student at IIT or at Georgetown and wish to contribute to the project, then reach out to CREASE project members at those institutions (click on "People" on the top-left of this page). If you're at a different institution, then there might still be ways to collaborate — contact Nik Sultana. Finally, stay updated by joining the CREASE mailing list.