Kyle Simpson
Recent content on Kyle Simpson
Latest posts
DError: Banishing Debug::fmt for nested enums
Galette: a Lightweight XDP Dataplane on your Raspberry Pi
Galette: A Lightweight XDP Dataplane on Your Raspberry Pi
A Primer on eBPF (Or, 'WebAssembly for the Linux Kernel')
Looking back on 2022
Singer-songwriter Katherine Priddy wrote earlier this month on how the New Year brings a mixture of hope, expectations, and bleakness . Naturally, she has a beautiful and poetic take on the gravity and pressures of January which I can’t pretend to imitate, but in amongst her thoughts is her drive to “turn back and appreciate what [she] did in 2022”. This stuck with me in a way I…
Revisiting the Classics: Online RL in the Programmable Dataplane
TruSDEd: Composable, Efficient, Secure XDP Service Function Chaining on Single-Board Computers
TruSDEd: Trustworthy, Software-Defined Cyberattack Detection and Mitigation at the Network Edge
Online Learning on the Programmable Dataplane
Revisiting the Classics: Online RL in the Programmable Dataplane
Revisiting the Classics: Online RL in the Programmable Dataplane
Poster: Online RL in the Programmable Dataplane with OPaL
Poster: Online RL in the Programmable Dataplane with OPaL
PhD Skills Workshop Session: Adapting Your Project to Work During COVID
Revisiting the Classics: Online RL in the Programmable Dataplane
Seiðr: Dataplane Assisted Flow Classification Using ML
Towards In-Switch Reinforcement Learning
Seiðr: Dataplane Assisted Flow Classification Using ML
Twisted Mac and Cheese
(Almost) Lockless Stream Buffering
Recently, I’ve been working on retooling the audio processing code for serenity , a Discord bot library. Adding features like looping, seeking, and shared resources between calls is made difficult when all input data arrives over pipes from ffmpeg and similar decoders. Due to this, I’ve designed a thread-safe shared stream buffer intended to lock only on accessing and storing new data.
Per-Host DDoS Mitigation by Direct-Control Reinforcement Learning
Real-time Performance Analysis of High-Speed, International Science Network Flows
ESnet6 HighTouch Collector: Overview and Future
Thoughts on Vana'diel
It’s strange, I think, how a sense of nostalgia for a virtual world (or point in time) arises from where we least expect it. A visual aesthetic, the feel of a specific piece of music, an outlook on the world and one’s place in its community. More and more, my thoughts have been drawn by these flashes towards the time I spent in Vana’diel—not a world I thrived in, but one…
Improving Direct-Control Reinforcement Learning for Network Intrusion Prevention
Felyne Bot, and Initial Thoughts on Rust
Having been bereft of a way to annoy my fellow Discord users (and itching to learn a new language), I’ve found myself experimenting with Rust . It’s been fun and tiring writing Felyne bot in a new language, and I’ve gotten some more language experience by helping develop Serenity .
Custom Open vSwitch Actions
For a project I’ve been working on (reimplementing some past work ), being able to easily enable pushback at various points in the network is fairly important. For this, I wanted to try something I’d both learn from and be able to use as a springboard for later development and testing – mininet (and by extension, Open vSwitch ) seemed like a good fit. Part of this requires a new…
On Maximum Weight Clique Algorithms, and How They Are Evaluated
Graph Models and Maximum Common Subgraph for Character Analysis
An investigation into graph models within computer vision—the project provides a criticism of existing general techniques reliant upon the Delaunay triangulation . I also propose and investigate techniques for modelling and recognition of characters, against several well-known handwritten datasets as well as a sampling of fonts. The attached paper constitutes my Masters dissertation.
Shallot
Shallot implements a basic decentralised onion routing scheme designed for use within browser applications, by using a modification of the Chord protocol as a backbone network and file-storage system. This is built upon the experimental WebRTC Data Channels recently added to browsers to offer true peer-to-peer connectivity between users. The system is compatible with both NodeJS and browser-based…
Sketch
The end result of a team project, Sketch is a simple Swift-inspired programming language for drawing graphics and animations. Sketch is implemented as a JavaScript library, and is powered by an easy-to-use WebGL backend. Unfortunately, no documentation for the language’s current version is available—the implementation differs largely from the original design documents, although most…