From 68b0ee3a38e3a86f0389d8cc695915df190c3dfb Mon Sep 17 00:00:00 2001 From: John DeNisco Date: Wed, 27 Sep 2017 16:35:23 -0400 Subject: Redhat and small system support Initial 17.10 commit Final 17.07 cleanup, 17.10 next Added CentOS grub support, this should complete the CentOS support Added Centos install/unistall Added TCP parameters. Change-Id: I064e3a4118969ac36e62924a6a3f8a98f132ba60 Signed-off-by: John DeNisco Signed-off-by: Dave Barach --- extras/vpp_config/data/80-vpp.conf.template | 15 ++++ extras/vpp_config/data/auto-config.yaml | 23 +++++ extras/vpp_config/data/grub.template | 34 ++++++++ extras/vpp_config/data/startup.conf.template | 123 +++++++++++++++++++++++++++ 4 files changed, 195 insertions(+) create mode 100644 extras/vpp_config/data/80-vpp.conf.template create mode 100644 extras/vpp_config/data/auto-config.yaml create mode 100644 extras/vpp_config/data/grub.template create mode 100644 extras/vpp_config/data/startup.conf.template (limited to 'extras/vpp_config/data') diff --git a/extras/vpp_config/data/80-vpp.conf.template b/extras/vpp_config/data/80-vpp.conf.template new file mode 100644 index 00000000000..8fdf184cf83 --- /dev/null +++ b/extras/vpp_config/data/80-vpp.conf.template @@ -0,0 +1,15 @@ +# Number of 2MB hugepages desired +vm.nr_hugepages=1024 + +# Must be greater than or equal to (2 * vm.nr_hugepages). +vm.max_map_count=3096 + +# All groups allowed to access hugepages +vm.hugetlb_shm_group=0 + +# Shared Memory Max must be greator or equal to the total size of hugepages. +# For 2MB pages, TotalHugepageSize = vm.nr_hugepages * 2 * 1024 * 1024 +# If the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax) +# is greater than the calculated TotalHugepageSize then set this parameter +# to current shmmax value. +kernel.shmmax=2147483648 diff --git a/extras/vpp_config/data/auto-config.yaml b/extras/vpp_config/data/auto-config.yaml new file mode 100644 index 00000000000..4a74de21882 --- /dev/null +++ b/extras/vpp_config/data/auto-config.yaml @@ -0,0 +1,23 @@ +metadata: + system_config_file: /vpp/vpp-config/configs/system-config.yaml + version: 0.1 +nodes: + DUT1: + cpu: + grub_config_file: /vpp/vpp-config/dryrun/default/grub + reserve_vpp_main_core: true + total_other_cpus: 0 + total_vpp_cpus: 2 + host: localhost + hugepages: + hugepage_config_file: /vpp/vpp-config/dryrun/sysctl.d/80-vpp.conf + total: '1024' + interfaces: + tcp: + active_open_sessions: 0 + passive_open_sessions: 0 + type: DUT + vpp: + startup_config_file: /vpp/vpp-config/dryrun/vpp/startup.conf + unix: + interactive: false diff --git a/extras/vpp_config/data/grub.template b/extras/vpp_config/data/grub.template new file mode 100644 index 00000000000..88138000e20 --- /dev/null +++ b/extras/vpp_config/data/grub.template @@ -0,0 +1,34 @@ +# If you change this file, run 'update-grub' afterwards to update +# /boot/grub/grub.cfg. +# For full documentation of the options in this file, see: +# info -f grub -n 'Simple configuration' + +GRUB_DEFAULT=0 +#GRUB_HIDDEN_TIMEOUT=0 +GRUB_HIDDEN_TIMEOUT_QUIET=true +GRUB_TIMEOUT=2 +GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` +GRUB_CMDLINE_LINUX_DEFAULT="" +GRUB_CMDLINE_LINUX="" + +# Uncomment to enable BadRAM filtering, modify to suit your needs +# This works with Linux (no patch required) and with any kernel that obtains +# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) +#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" + +# Uncomment to disable graphical terminal (grub-pc only) +#GRUB_TERMINAL=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `vbeinfo' +#GRUB_GFXMODE=640x480 + +# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +#GRUB_DISABLE_RECOVERY="true" + +# Uncomment to get a beep at grub start +#GRUB_INIT_TUNE="480 440 1" diff --git a/extras/vpp_config/data/startup.conf.template b/extras/vpp_config/data/startup.conf.template new file mode 100644 index 00000000000..91b92c62aea --- /dev/null +++ b/extras/vpp_config/data/startup.conf.template @@ -0,0 +1,123 @@ + +unix {{ +{unix} + log /tmp/vpp.log + full-coredump + cli-listen /run/vpp/cli.sock +}} + +api-trace {{ + on +}} + +cpu {{ +{cpu} + scheduler-policy fifo + scheduler-priority 50 + + ## In the VPP there is one main thread and optionally the user can create worker(s) + ## The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically + + ## Manual pinning of thread(s) to CPU core(s) + + ## Set logical CPU core where main thread runs + # main-core 1 + + ## Set logical CPU core(s) where worker threads are running + # corelist-workers 2-3,18-19 + + ## Automatic pinning of thread(s) to CPU core(s) + + ## Sets number of CPU core(s) to be skipped (1 ... N-1) + ## Skipped CPU core(s) are not used for pinning main thread and working thread(s). + ## The main thread is automatically pinned to the first available CPU core and worker(s) + ## are pinned to next free CPU core(s) after core assigned to main thread + # skip-cores 4 + + ## Specify a number of workers to be created + ## Workers are pinned to N consecutive CPU cores while skipping "skip-cores" CPU core(s) + ## and main thread's CPU core + # workers 2 + + ## Set scheduling policy and priority of main and worker threads + + ## Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH) + ## idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR) + # scheduler-policy fifo + + ## Scheduling priority is used only for "real-time policies (fifo and rr), + ## and has to be in the range of priorities supported for a particular policy + # scheduler-priority 50 +}} + +dpdk {{ +{devices} + + ## Change default settings for all intefaces + # dev default {{ + ## Number of receive queues, enables RSS + ## Default is 1 + # num-rx-queues 3 + + ## Number of transmit queues, Default is equal + ## to number of worker threads or 1 if no workers treads + # num-tx-queues 3 + + ## Number of descriptors in transmit and receive rings + ## increasing or reducing number can impact performance + ## Default is 1024 for both rx and tx + # num-rx-desc 512 + # num-tx-desc 512 + + ## VLAN strip offload mode for interface + ## Default is off + # vlan-strip-offload on + # }} + + ## Whitelist specific interface by specifying PCI address + # dev 0000:02:00.0 + + ## Whitelist specific interface by specifying PCI address and in + ## addition specify custom parameters for this interface + # dev 0000:02:00.1 {{ + # num-rx-queues 2 + # }} + + ## Specify bonded interface and its slaves via PCI addresses + ## + ## Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers + # vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34 + # vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34 + ## + ## Bonded interface in Active-Back up mode (mode 1) + # vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0 + # vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1 + + ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci + ## and uio_pci_generic (default) + # uio-driver vfio-pci + + ## Disable mutli-segment buffers, improves performance but + ## disables Jumbo MTU support + # no-multi-seg + + ## Increase number of buffers allocated, needed only in scenarios with + ## large number of interfaces and worker threads. Value is per CPU socket. + ## Default is 16384 + # num-mbufs 128000 + + ## Change hugepages allocation per-socket, needed only if there is need for + ## larger number of mbufs. Default is 256M on each detected CPU socket + # socket-mem 2048,2048 +}} + +# Adjusting the plugin path depending on where the VPP plugins are: +#plugins +#{{ +# path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins +#}} + +# Alternate syntax to choose plugin path +#plugin_path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins + +{tcp} -- cgit 1.2.3-korg