Open Access
yanc: Yet Another Network Controller
Matthew Monaco,Eric Keller +1 more
- 01 Jan 2013
TL;DR: This poster presents yanc, a software-defined networking controller which allows for applications to take a wide variety of forms by relying heavily on existing operating system (Linux) features, and discusses how yanc can be used to perform the variety of network tasks needed by network admins.
read more
Abstract: With the rise of software-defined networking, there has been a great deal of focus on the design of the centralized controller (both commercially and academically). This controller serves the role of an operating system for networks [2] which provides an interface to program the entire network. In this poster, we explore the question: Is a network operating system fundamentally that different from an operating system such that it requires a completely new (network) operating system? The current offerings, while extensible, are geared towards single, monolithic network applications more analogous to a single operating system process with optional plug-ins. We argue that instead of building custom network operating systems, we should leverage existing operating system technology in building a network operating system – effectively making Linux the network operating system. We will present yanc, a software-defined networking controller in early development. The main insight in yanc is that the network can be managed by standard file I/O, and we do not need special applications which sit at some privileged point between the network OS and hardware. Program dependencies and ordering is configured through text files – e.g., a program can be packaged with a config file in /usr/share/yanc/conf.d/ with a default priority and relative ordering to other applications, but can be tweaked by an admin under /etc/yanc/conf.d/. The yanc file system is mounted at /net. Network state such as switches, ports, queues, flow tables, and counters are organized as files and directories. To expand on this, we give a few examples here which reflect our current thinking to illustrate the possibilities, but is sure to evolve over time. Devices are configured by e.g., writing 100 into /net/switches/id /queues/id /size. The datapath is configured by writing a plain-text string e.g., prio=16 match=in:10,ethsrc=mac,vlan=4 pop-vlan out=flood to /.../switchid /flows. Error numbers are returned indicating success or failure – e.g., for incorrectly overlapping another flow. Individual flows have file representations which can be altered and deleted. Finally, network events are exposed through files which represent the type of event. For example, /.../switchid /packet in can be used to retrieve PACKET-IN events, which can be read and written by applications – applications can write to it to alter the view other applications see of that event (as configured by the administrator, not hard coded into the applications). Directories represent a hierarchy of network state (or network slices [3]). The slice will have some (configurable) default form – e.g., a read-only copy of the entire network. It is then configured by writing plain-text strings to a file such as ipnet=10.0.0.0/24 With directories, access to portions of the network state can be restricted using file permissions. Confining the controller’s north-bound API to a file system enables a rich variety of applications which can be implemented in any language supported by the compilers and interpreters installed on the system. The network is ultimately controlled by daemons, cron jobs, interactive utilities, and even ad-hoc scripts. Yanc differs from other controllers such as NOX [2] and Floodlight [1] in that it allows for applications to take a wide variety of forms by relying heavily on existing operating system (Linux) features. This results in a north-bound API with a stable and well-understood set of semantics. With this, a yanc network can rely on existing software which follows the same file system semantics from grep and mkdir to distributed file systems. In the poster we will elaborate on the design and discuss how yanc can be used to perform the variety of network tasks needed by network admins.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
References
NOX: towards an operating system for networks
Natasha Gude,Teemu Koponen,Justin Pettit,Ben Pfaff,Martin Casado,Nick McKeown,Scott Shenker +6 more
- 01 Jul 2008
TL;DR: The question posed here is: Can one build a network operating system at significant scale?
FlowVisor: A Network Virtualization Layer
Rob Sherwood,Glen Gibb,Kok-Kiong Yap,Guido Appenzeller,Martin Casado,Nick McKeown,Guru Parulkar +6 more
- 01 Jan 2009
TL;DR: This paper builds a research platform which allows multiple network experiments to run side-by-side with production traffic while still providing isolation and hardware forwarding speeds and presents a new approach to switch virtualization in which the same hardware forwarding plane can be shared among multiple logical networks, each with distinct forwarding logic.
Related Papers (5)
C. V. Ravi
- 01 Jan 1975
David R. Brownbridge,Lindsay Marshall,Brian Randell +2 more
- 01 Nov 2001
K. S. Ramesh
- 01 Feb 1988