Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Steffen Smolka

dblp:164/5888 · DBLP profile ↗
← Back
7ranked-venue papers
4as first author
2since 2021 · last 2024
0000-0001-8625-5490ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 4 first-author · 1 since 2021Computer networks · 1 · 1 since 2021Security and privacy · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer networks
5 papers
Network management and operations · 49% Software-defined and programmable networks · 46% Internet of things and sensor networks · 3%
Theoretical computer science
2 papers
Automata and formal languages · 64% Logic in computer science · 36%
Software engineering, system software, and programming languages
1 paper
Programming languages and type systems · 100%
Network and information security
1 paper
Authentication and access control · 100%

Topics — the 9 heaviest of 10, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Network management and operations
network verification
2.042024
KATch: A Fast Symbolic Verifier for NetKAT · Proc. ACM Program. Lang. 2024
SwitchV: automated SDN switch validation with P4 models · SIGCOMM 2022
Scalable verification of probabilistic networks · PLDI 2019
Software-defined and programmable networks
programmable data plane
1.022022
SwitchV: automated SDN switch validation with P4 models · SIGCOMM 2022
Scalable verification of probabilistic networks · PLDI 2019
Automata and formal languages › automata over infinite alphabets
symbolic automata
0.812024
KATch: A Fast Symbolic Verifier for NetKAT · Proc. ACM Program. Lang. 2024
Software-defined and programmable networks › network programming
network programming languages
0.522024
Cantor meets scott: semantic foundations for probabilistic networks · POPL 2017
KATch: A Fast Symbolic Verifier for NetKAT · Proc. ACM Program. Lang. 2024
Programming languages and type systems
equational reasoning
0.412020
Guarded Kleene algebra with tests: verification of uninterpreted programs in nearly linear time · Proc. ACM Program. Lang. 2020
Logic in computer science › algebraic logic
kleene algebra
0.412020
Guarded Kleene algebra with tests: verification of uninterpreted programs in nearly linear time · Proc. ACM Program. Lang. 2020
Authentication and access control › security policy
security policy verification
0.412019
Proof-Carrying Network Code · CCS 2019
Internet of things and sensor networks
iot security
0.112019
Proof-Carrying Network Code · CCS 2019
Network performance modeling
network congestion
0.112017
Cantor meets scott: semantic foundations for probabilistic networks · POPL 2017

Methods — techniques the papers use, named apart from their topics

symbolic automata · 1.5bisimulation · 1.5salomaa axiomatization · 0.9kleene theorem · 0.9coalgebra · 0.9proof-carrying code · 0.8proof-carrying authorization · 0.8p4 model · 0.6parallelization · 0.4markov chain semantics · 0.4markov kernels · 0.3domain theory · 0.3denotational semantics · 0.3
YearPublicationVenuePosition
2024 KATch: A Fast Symbolic Verifier for NetKAT
abstract
We develop new data structures and algorithms for checking verification queries in NetKAT, a domain-specific language for specifying the behavior of network data planes. Our results extend the techniques obtained in prior work on symbolic automata and provide a framework for building efficient and scalable verification tools. We present KATch, an implementation of these ideas in Scala, featuring an extended set of NetKAT operators that are useful for expressing network-wide specifications, and a verification engine that constructs a bisimulation or generates a counter-example showing that none exists. We evaluate the performance of our implementation on real-world and synthetic benchmarks, verifying properties such as reachability and slice isolation, typically returning a result in well under a second, which is orders of magnitude faster than previous approaches. Our advancements underscore NetKAT’s potential as a practical, declarative language for network specification and verification.
Mark Moeller, Jules Jacobs, Olivier Savary Bélanger, David Darais, Cole Schlesinger, Steffen Smolka, Nate Foster, Alexandra Silva 0001
Proc. ACM Program. Lang.6
2022 SwitchV: automated SDN switch validation with P4 models
abstract
Increasing demand on computer networks continuously pushes manufacturers to incorporate novel features and capabilities into their switches at an ever-accelerating pace. However, the traditional approach to switch development relies on informal specifications and handcrafted tests to ensure reliability, which are tedious and slow to maintain and update, effectively putting feature velocity at odds with reliability.
Kinan Dak Albab, Jonathan DiLorenzo, Stefan Heule, Ali Kheradmand, Steffen Smolka, Konstantin Weitz, Muhammad Timarzi, Minlan Yu
SIGCOMM5
2020 Guarded Kleene algebra with tests: verification of uninterpreted programs in nearly linear time
abstract
Guarded Kleene Algebra with Tests (GKAT) is a variation on Kleene Algebra with Tests (KAT) that arises by restricting the union (+) and iteration (*) operations from KAT to predicate-guarded versions. We develop the (co)algebraic theory of GKAT and show how it can be efficiently used to reason about imperative programs. In contrast to KAT, whose equational theory is PSPACE-complete, we show that the equational theory of GKAT is (almost) linear time. We also provide a full Kleene theorem and prove completeness for an analogue of Salomaa’s axiomatization of Kleene Algebra.
Steffen Smolka, Nate Foster, Justin Hsu, Tobias Kappé, Dexter Kozen, Alexandra Silva 0001
Proc. ACM Program. Lang.1
2019 Proof-Carrying Network Code
abstract
Computer networks often serve as the first line of defense against malicious attacks. Although there are a growing number of tools for defining and enforcing security policies in software-defined networks (SDNs), most assume a single point of control and are unable to handle the challenges that arise in networks with multiple administrative domains. For example, consumers may want want to allow their home IoT networks to be configured by device vendors, which raises security and privacy concerns. In this paper we propose a framework called Proof-Carrying Network Code (PCNC) for specifying and enforcing security in SDNs with interacting administrative domains. Like Proof-Carrying Authorization (PCA), PCNC provides methods for managing authorization domains, and like Proof-Carrying Code (PCC), PCNC provides methods for enforcing behavioral properties of network programs. We develop theoretical foundations for PCNC and evaluate it in simulated and real network settings, including a case study that considers security in IoT networks for home health monitoring.
Christian Skalka, John H. Ring, David Darais, Minseok Kwon, Sahil Gupta, Kyle Diller, Steffen Smolka, Nate Foster
CCS7
2019 Scalable verification of probabilistic networks
abstract
This paper presents McNetKAT, a scalable tool for verifying probabilistic network programs. McNetKAT is based on a new semantics for the guarded and history-free fragment of Probabilistic NetKAT in terms of finite-state, absorbing Markov chains. This view allows the semantics of all programs to be computed exactly, enabling construction of an automatic verification tool. Domain-specific optimizations and a parallelizing backend enable McNetKAT to analyze networks with thousands of nodes, automatically reasoning about general properties such as probabilistic program equivalence and refinement, as well as networking properties such as resilience to failures. We evaluate McNetKAT's scalability using real-world topologies, compare its performance against state-of-the-art tools, and develop an extended case study on a recently proposed data center network design.
Steffen Smolka, Praveen Kumar 0003, David M. Kahn, Nate Foster, Justin Hsu, Dexter Kozen, Alexandra Silva 0001
PLDI1
2017 Cantor meets scott: semantic foundations for probabilistic networks
abstract
ProbNetKAT is a probabilistic extension of NetKAT with a denotational semantics based on Markov kernels. The language is expressive enough to generate continuous distributions, which raises the question of how to compute effectively in the language. This paper gives an new characterization of ProbNetKAT’s semantics using domain theory, which provides the foundation needed to build a practical implementation. We show how to use the semantics to approximate the behavior of arbitrary ProbNetKAT programs using distributions with finite support. We develop a prototype implementation and show how to use it to solve a variety of problems including characterizing the expected congestion induced by different routing schemes and reasoning probabilistically about reachability in a network.
Steffen Smolka, Praveen Kumar 0003, Nate Foster, Dexter Kozen, Alexandra Silva 0001
POPL1
2015 A fast compiler for NetKAT
abstract
High-level programming languages play a key role in a growing number of networking platforms, streamlining application development and enabling precise formal reasoning about network behavior. Unfortunately, current compilers only handle "local" programs that specify behavior in terms of hop-by-hop forwarding behavior, or modest extensions such as simple paths. To encode richer "global" behaviors, programmers must add extra state -- something that is tricky to get right and makes programs harder to write and maintain. Making matters worse, existing compilers can take tens of minutes to generate the forwarding state for the network, even on relatively small inputs. This forces programmers to waste time working around performance issues or even revert to using hardware-level APIs. This paper presents a new compiler for the NetKAT language that handles rich features including regular paths and virtual networks, and yet is several orders of magnitude faster than previous compilers. The compiler uses symbolic automata to calculate the extra state needed to implement "global" programs, and an intermediate representation based on binary decision diagrams to dramatically improve performance. We describe the design and implementation of three essential compiler stages: from virtual programs (which specify behavior in terms of virtual topologies) to global programs (which specify network-wide behavior in terms of physical topologies), from global programs to local programs (which specify behavior in terms of single-switch behavior), and from local programs to hardware-level forwarding tables. We present results from experiments on real-world benchmarks that quantify performance in terms of compilation time and forwarding table size.
Steffen Smolka, Spiridon Aristides Eliopoulos, Nate Foster, Arjun Guha
ICFP1