dnsjit.filter.ipsplit(3)

NAME
dnsjit.filter.ipsplit - Pass objects to receivers based on the source IP address

SYNOPSIS
  local ipsplit = require("dnsjit.filter.ipsplit").new()
  ipsplit.receiver(...)
  ipsplit.receiver(...)
  ipsplit.receiver(...)
  input.receiver(ipsplit)

DESCRIPTION
The filter passes objects to other receivers. Object chains without IPv4/IPv6 packet are discarded. Packets which have the same source IP address are considered to be sent from the same "client". When the first packet from a client is processed, the client is assigned to a receiver. All objects from this client will be passed to the assigned receiver. The filter can also write a receiver-specific client ID (starting from 1) to the source or destination IP in the packet.

  Functions

IpSplit.new()
    Create a new IpSplit filter.

IpSplit:log()
    Return the Log object to control logging of this instance or module.

IpSplit:receive()
    Return the C functions and context for receiving objects.

IpSplit:receiver(o, weight)
    Set the receiver to pass objects to, this can be called multiple times to set additional receivers. The weight parameter can be used to adjust distribution of clients among receivers. Weight must be a positive integer (default is 1).

IpSplit:discarded()
    Number of input packets discarded due to various reasons. To investigate causes, run with increased logging level.

IpSplit:sequential()
    Set the client assignment mode to sequential. Assigns `weight` clients to a receiver before continuing with the next receiver (default mode).

IpSplit:random(seed)
    Set the client assignment mode to random. Each client is randomly assigned to a receiver (weight affects the probability). The client assignment is stable (and portable) for given seed.

IpSplit:overwrite_none()
    Don't overwrite source or destination IP (default).

IpSplit:overwrite_src()
    Write receiver-specific client ID to bytes 0-3 of source IP (host byte order).

IpSplit:overwrite_dst()
    Write receiver-specific client ID to bytes 0-3 of destination IP (host byte order).

AUTHORS and CONTRIBUTORS
Jerry Lundström (DNS-OARC), Tomáš Křížek (CZ.NIC), Petr Špaček (ISC)

Maintained by DNS-OARC

    https://www.dns-oarc.net/

BUGS
For issues and feature requests please use:

    https://github.com/DNS-OARC/dnsjit/issues

For question and help please use:

    admin@dns-oarc.net