unix {
  nodaemon
  log /var/log/vpp/vpp.log
  cli-listen /run/vpp/cli.sock
  gid vpp

  ## This makes VPP sleep 1ms between each DPDK poll, greatly
  ## reducing CPU usage, at the expense of latency/throughput.
  poll-sleep-usec 1000

  ## Execute all CLI commands from this file upon startup
  exec /etc/vpp/bootstrap.vpp
}

api-trace { on }
api-segment { gid vpp }
socksvr { default }

memory {
    ## Set the main heap size, default is 1G
    main-heap-size 8G
    main-heap-page-size default-hugepage
}

cpu {
  main-core 8
  corelist-workers 9-15
}

statseg {
    # socket-name <filename>, name of the stats segment socket
    #     defaults to /run/vpp/stats.sock
    # size <nnn>[KMG], size of the stats segment, defaults to 32mb
    size 1G
    # page-size <nnn>, page size, ie. 2m, defaults to 4k
    # per-node-counters on | off, defaults to none
    # update-interval <f64-seconds>, sets the segment scrape / update interval
}

plugins {
        ## Disable all plugins by default and then selectively enable specific plugins
        plugin default { disable }

        plugin abf_plugin.so  { enable }
        plugin acl_plugin.so  { enable }
        plugin arping_plugin.so  { enable }
        plugin dpdk_plugin.so  { enable }
        plugin flowprobe_plugin.so  { enable }
        plugin lacp_plugin.so  { enable }
        plugin linux_cp_plugin.so  { enable }
        plugin linux_nl_plugin.so  { enable }
        plugin lldp_plugin.so  { enable }
        plugin mactime_plugin.so  { enable }
        plugin memif_plugin.so  { enable }
        plugin mss_clamp_plugin.so  { enable }
        plugin ping_plugin.so  { enable }
        plugin rdma_plugin.so  { enable }
        plugin selog_plugin.so  { enable }
        plugin sflow_plugin.so  { enable }
        plugin svs_plugin.so  { enable }
        plugin tap_plugin.so  { enable }
        plugin udp_echo_plugin.so  { enable }
        plugin urpf_plugin.so  { enable }
        plugin vhost_plugin.so  { enable }
        plugin vrrp_plugin.so { enable }

}

## L3 FIB
l3fib {
    ## load balance pool size preallocation (expected number of objects)
    load-balance-pool-size 4M
    # load-balance-pool-size 1M

    ## fib entry pool size preallocation (expected number of objects)
    fib-entry-pool-size 8M
    # fib-entry-pool-size 1M

    ## ip4 mtrie pool size preallocation (expected number of mtries)
    ip4-mtrie-pool-size 50K
    # ip4-mtrie-pool-size 1K
}


logging {
  default-log-level info
  default-syslog-log-level notice
  class linux-cp/if { rate-limit 10000 level debug syslog-level debug }
  class linux-cp/nl { rate-limit 10000 level debug syslog-level debug }
}

dpdk {
  dev 0000:83:00.0
  dev 0000:83:00.1
  dev 0000:85:00.0
  dev 0000:86:00.0
  dev 0000:86:00.1
  dev 0000:87:00.0
  dev 0000:87:00.1
}