Skip to content
Tom Barbette edited this page Nov 25, 2022 · 1 revision

DeviceBalancer Element Documentation

NAME

DeviceBalancer — Click element; Balance flows among cores using the NICScheduler library

SYNOPSIS

DeviceBalancer()

Ports: none
Drivers: userlevel

DESCRIPTION

The DeviceBalancer element periodically calls NICScheduler's balancing method to re-arrange flows-to-queue (and therefore core) mapping of an Ethernet device, such as FromDevice, an external standard Linux interface, or FromDPDKDevice. The best known method supported by this element is "RSS++", see our CoNEXT 2019 paper for more details.

More details about the methods can be found in include/click/NICScheduler* According to the result of the optimization, the element will re-program the indirection table using the ethtool API.

This elements needs --enable-rsspp and --enable-cpu-load to be given to the configure line to be built.

This element extends NICScheduler*.

Therefore if you're looking into the implementation, you should read vendor/NICScheduler*

Exemple usage :

DeviceBalancer(DEV fd0, METHOD rsspp, VERBOSE $VERBOSE, STARTCPU 4, RSSCOUNTER agg, AUTOSCALE 0);

  • DEV Element handling the device to balance —

  • METHOD Balancing method, eg rss or rsspp —

  • VERBOSE Verbosity level —

  • STARTCPU Number of CPU to use at startup —

  • RSSCOUNTER Element such as AggregateCounterVector to count packets per RSS index

  • AUTOSCALE Enable autoscaling —

Generated by click-elem2man from ../elements/userlevel/devicebalancer.hh:30 on 2022/11/25.

Clone this wiki locally