System

The system section exposes some configuration settings of the operating system and the VPP dataplane that are relevant for the operation of the appliance.

Operating system

The following fields expose operating system settings:

dns.servers

A list of DNS server IP addresses that the appliance uses for domain name resolution.

ntp.servers

A list of NTP time server IP addresses that the appliance uses for time synchronization.

kernel

A group of Linux kernel settings that are exposed.

Warning

Be advised that you should only change these values if you understand the implications. In case you have any questions, reach out to customer-support@anapaya.net.

hugepage_size

The size of hugepages the kernel should allocate at boot time.

hugepages

The number of hugepages the kernel should allocate at boot time.

iommu_enabled

A flag configuring whether the IOMMU subsystem in the Linux kernel is enabled. To improve performance, this should be set to true on all systems that support it.

Hint

Use the following command to find out if the appliance host supports IOMMU:

find /sys | grep dmar

It should report a non-empty list of devices.

Note

After changing this option the appliance needs to be rebooted.

system

The following example configures enables IOMMU and configures custom DNS and NTP servers.

"system": {
  "dns": {
    "servers": [
      {
        "address": "2.2.2.2"
      }
    ]
  },
  "kernel": {
    "iommu_enabled": true
  },
  "ntp": {
    "servers": [
      {
        "address": "time3.example.ch"
      }
    ]
  },
}

Vector Packet Processor (VPP)

Warning

Be advised that you should only change these values if you understand the implications. In case you have any questions, reach out to customer-support@anapaya.net.

The appliance router and IP-in-SCION tunneling processes use a VPP dataplane to provide fast packet processing.

The following fields configure relevant settings of and related to the VPP dataplane:

buffers.data_size

The default size of the buffer VPP allocates for a packet, in bytes (VPP Reference).

connection

Configures the appliance’s connection to the VPP dataplane. The VPP control service is the part of the appliance that configures the underlying network devices for the VPP dataplane and regularly performs health checks to make sure it works as expected.

  • health_check.probe_interval

    The interval in which a health check probe is sent to the VPP dataplane.

  • health_check.reply_timeout

    The time in which the VPP control service expects a reply from the VPP dataplane.

  • health_check.threshold

    The number of health checks, from VPP control service to the VPP dataplane, that is allowed to time out before the connection is considered dead.

  • reconnect_attempts

    The number of connection attempts from VPP control service to the VPP dataplane after starting up.

  • reconnect_interval

    The interval at which a connection is attempted from VPP control service to the VPP dataplane after starting up.

cpu.main_core

The logical CPU core the main VPP dataplane thread runs on (VPP Reference).

cpu.workers

The number of workers that are created for the VPP dataplane. The workers are automatically pinned to consecutive CPU cores. (VPP Reference)

VPP creates a TUN device to accept packets from and route packets to Linux. The device gets created automatically and can be configured with the following fields:

tun.mtu

The MTU (Maximum Transmission Unit) on the TUN device that the VPP dataplane creates in Linux.

tun.prefixes

A list of prefixes that should not be forwarded by VPP but routed to Linux.

system.vpp

The following example configures the VPP dataplane to use a larger than default buffer size and only one CPU.

"system": {
  "vpp": {
    "buffers": {
      "data_size": 9000
    },
    "cpu": {
      "main_core": 1,
      "workers": 1
    },
  }
}