Another day, another post about Snabb. Today, I'll start to explain some work I've been doing at Igalia for Deutsche Telekom on driver development. All the DT driver work I'll be talking about was joint work with Nicola Larosa.
As you know if you've been following this blog, at Igalia we build network functions using the Snabb toolkit. When we're not directly working on customer projects, we often invest time into building new features into Snabb.
My first task when I joined Igalia was experimenting with building networking apps with pfmatch and the Snabb framework. I mentioned Snabb in my last blog post, but in case you're just tuning in, Snabb is a framework built on LuaJIT that lets you assemble networking programs as a combination of small apps---each implementing a particular network function---in a high-level scripting environment.
Meanwhile, pfmatch is a simple DSL that's built on pflua, the subject of my last blog post. The idea of pfmatch is to use pflang filters to implement a pattern-matching facility for use in Snabb apps.
Today's post is about the compiler implementation work I've been doing at
Igalia for the past month and a half or so.
The networking team at Igalia
maintains the pflua library for fast packet
filtering in Lua. The library implements the pflang
language, which is what we call the filtering language that's built into tools like
tcpdump and libpcap.
Now that I work at Igalia on the networking team, I've started to write code in Lua (specfically with LuaJIT) in order to work with Snabb. Since I'm still a Lua newbie, I decided to attend this year's Lua Workshop in San Francisco to learn what's going on in the community.
The workshop was a lot of fun! Kudos to Mashape for hosting the event. The talks were easy to follow even for a Lua newbie like myself. I took notes on all of the talks, but I won't go over all the details since the talks were recorded and you can just see for yourself. Instead, I wanted to go over some of my personal highlights.