LB(8)

NAME
lb - netmap-based load balancer

SYNOPSIS

lb  [-i port] [-p pipe-group] [-B extra-buffers] [-b batch-size] [-w wait-link]

DESCRIPTION
lb reads packets from an input netmap port and sends them to a number of netmap pipes, trying to balance the packets received by each pipe. Packets belonging to the same connection will always be sent to the same pipe.

Command line options are listed below.

-i port
    Name of a netmap port. It must be supplied exactly once to identify the input port. Any netmap port type (e.g., physical interface, VALE switch, pipe, monitor port) can be used.

-p name:number | number
    Add a new pipe group of the given number of pipes. The pipe group will receive all the packets read from the input port, balanced among the available pipes. The receiving ends of the pipes will be called “name}0” to “name}<number - 1>”. The name is optional and defaults to the name of the input port (stripped down of any netmap operator). If the name is omitted, also the colon can be omitted.

    This option can be supplied multiple times to define a sequence of pipe groups, each group receiving all the packets in turn.

    If no -p option is given, a single group of two pipes with default name is assumed.

    It is allowed to use the same name for several groups. The pipe numbering in each group will start from were the previous identically-named group had left.

-B extra-buffers
    Try to reserve the given number of extra buffers. Extra buffers are shared among all pipes in all groups and work as an extension of the pipe rings. If a pipe ring is full for whatever reason, lb tries to use extra buffers before dropping any packets directed to that pipe.

    If all extra buffers are busy, some are stolen from the pipe with the longest backlog. This gives preference to newer packets over old ones, and prevents a stalled pipe to deplete the pool of extra buffers.

-b batch-size
    Maximum number of packets processed between two read operations from the input port. Higher values of batch-size improve performance by amortizing read operations, but increase the risk of filling up the port internal queues.

-w wait-link
    indicates the number of seconds to wait before transmitting. It defaults to 2, and may be useful when talking to physical ports to let link negotiation complete before starting transmission.

LIMITATIONS
The group chaining assumes that the applications on the receiving end of the pipes are read-only: they must not modify the buffers or the pipe ring slots in any way.

The group naming is currently implemented by creating a persistent VALE port with the given name. If lb does not exit cleanly the ports will not be removed. Please use valectl(8) to remove any stale persistent VALE port.

SEE ALSO
netmap(4), bridge(8), pkt-gen(8)

http://info.iet.unipi.it/~luigi/netmap/

AUTHORS
-nosplit lb has been written by Seth Hall at Corelight, USA. The facilities related to extra buffers and pipe groups have been added by Giuseppe Lettieri at University of Pisa, Italy, under contract by Corelight, USA.