Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If your server has different hardware characteristics (e.g., an AMD processor instead of an Intel processor), then you should extend the file server-drivers.xml accordingly.


Server Device Discovery

Upon a successful registration of your server device, the server device driver issues monitoring commands issues resource discovery commands to the server in order to discover:

  • the ports (i.e., NICs) available on this server as well as their statistics,
  • the CPUs available on this server as well as their statistics,
  • any flow entries installed on in this server's NIC(s).

The resource discovery command issued by the device driver hits the following resource path on the server:

...

Currently, the server device driver supports 4 programmability modes as follows:

  • flow: Refers to the the Flow Director (e.g., Intel's Flow Director component ) component of modern NICs. In this mode the server device driver can send explicit flow rules to a server's NIC(s) in order to perform traffic classification (e.g., match the values of a packet's header field), modification (e.g., drop a packet), and dispatching (e.g., place a packet into a specific hardware queue associated with a CPU core)
  • mac: Refers to the Medium Access Control (MAC)-based Virtual Machine Device queues (VMDq) (e.g., Intel's VMDq) component of modern NICs. In this mode, a server associates a set of (virtual) MAC addresses with a set of CPU cores. Input packets' destination MAC address field is matched against these values and upon a successful match, the packet is redirected to the respective CPU core.
  • vlan: Refers to the Virtual Local Area (VLAN) identifier (ID)-based Virtual Machine Device queues (VMDq (e.g., Intel's VMDq) component of modern NICs. In this mode, a server associates a set of VLAN IDs with a set of CPU cores. Input packets' VLAN ID field is matched against these values and upon a successful match, the packet is redirected to the respective CPU core.
  • rss: Refers to the Receive-Side Scaling (RSS) (e.g., Intel's RSS) component of modern NICs. In this mode, the server's NIC applies a hash function to certain header field values of incoming packets, in order to identify the CPU core that is going to undertake the processing of each packet.

In the example above the server advertized Flow Director as a candidate mode for packet dispatching.

A complete implementation of the data plane side of a server device can be found here.

Research Behind this Feature

The server device driver was implemented as part of the Metron research project, which was publised at the 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’18).

Metron realizes NFV service chains at the speed of the underlying hardware.

Metron's data plane extends FastClick, which in turn uses DPDK as a high performance network I/O subsystem.

If you use the server device driver or Metron in your research, please cite our paper as follows:

@inproceedings{katsikas-metron.nsdi18,
	author       = {Katsikas, Georgios P. and Barbette, Tom and Kosti\'{c}, Dejan and Steinert, Rebecca and Maguire Jr., Gerald Q.},
	title        = {{Metron: NFV Service Chains at the True Speed of the Underlying Hardware}},
	booktitle    = {15th USENIX Conference on Networked Systems Design and Implementation (NSDI 18)},
	series       = {NSDI'18},
	year         = {2018},
	isbn         = {978-1-931971-43-0},
	pages        = {171--186},
	numpages     = {16},
	url          = {https://www.usenix.org/system/files/conference/nsdi18/nsdi18-katsikas.pdf},
	address      = {Renton, WA},
	acmid        = {},
	publisher    = {USENIX Association}
}