OVS Orbit podcast

User-Configurable Protocol Support for OVS, or Why Doesn't OVS Support P4?

03/06/2019
0:00
50:06
Recuar 15 segundos
Avançar 15 segundos

There are several challenges toward making it easy for users to add support for new protocols in OVS or, equivalently, adding P4 support to OVS. This talk, given at the Dagstuhl seminar on programmable data planes in April 2019, explains the reasons that OVS doesn't already have these features, what's changing, and likely future directions. The talk includes considerable discussion with the audience.

An early statement summarizes the message of the talk:

...I think that it's too hard to add support for new protocols and I think users should be able to do that fairly easily. Currently, it's really hard--it's hard for me in some cases, and if it's hard for me then I'm sure it's hard for everyone else.

A little later, this quote covers Ben's philosophy on P4:

Why I like P4 is because of my own personal experience with OpenFlow. At Nicira when we started out designing OpenFlow, we designed it for very much a fixed match over basically IPv4 and related fields. We knew from day 1 that that wasn't good enough, I mean, not to mention existing protocols like IPv6 that we couldn't handle, but it seemed pretty obvious that people would want to add their own. Over a couple of years, in my spare time I started tinkering with ideas for how to write a language for specifying what protocols a switch supports. It seemed like there were two possibilities that kept coming up, and yet neither one of them seemed very good. One was basically based on fixed offsets; people kept suggesting this, I think maybe even Nick McKeown suggested this at one point. I kept pointing out that fixed offsets are not going to work very well because offsets change from one packet to another. The other end of the spectrum was somebody just provides a program in some general-purpose language that extracts the headers that you want, and that also seems pretty unsatisfying because it's really hard to take a general-purpose program and look at it in terms of some of its emergent properties. You can't do much with it other than run it. I tried to come up with some languages that fit in between and then when I first saw one of the drafts of the P4 specification, I looked at it and said, "I wish I'd written this." It seems to me that it strikes a really good balance there.

The remainder of the talk covers the possible directions forward for OVS and flexible protocol support, including eBPF and AF_XDP.

OVS Orbit is produced by Ben Pfaff. The intro music in this episode is Drive, featuring cdk and DarrylJ, copyright 2013, 2016 by Alex. The bumper music is Yeah Ant featuring Wired Ant and Javolenus, copyright 2013 by Speck. The outro music is Space Bazooka featuring Doxen Zsigmond, copyright 2013 by Kirkoid. All content is licensed under a Creative Commons Attribution 3.0 Unported (CC BY 3.0) license.

Mais episódios de "OVS Orbit"