dpvs | high performance Layer-4 load balancer | TCP library

 by   iqiyi C Version: v1.9.4 License: Non-SPDX

kandi X-RAY | dpvs Summary

kandi X-RAY | dpvs Summary

dpvs is a C library typically used in Networking, TCP applications. dpvs has no bugs, it has no vulnerabilities and it has medium support. However dpvs has a Non-SPDX License. You can download it from GitHub.

DPVS is a high performance Layer-4 load balancer based on DPDK. It's derived from Linux Virtual Server LVS and its modification alibaba/LVS. Notes: The name DPVS comes from "DPDK-LVS".
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              dpvs has a medium active ecosystem.
              It has 2617 star(s) with 670 fork(s). There are 192 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 115 open issues and 222 have been closed. On average issues are closed in 57 days. There are 16 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of dpvs is v1.9.4

            kandi-Quality Quality

              dpvs has 0 bugs and 0 code smells.

            kandi-Security Security

              dpvs has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              dpvs code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              dpvs has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              dpvs releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              It has 218 lines of code, 1 functions and 4 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of dpvs
            Get all kandi verified functions for this library.

            dpvs Key Features

            No Key Features are available at this moment for dpvs.

            dpvs Examples and Code Snippets

            No Code Snippets are available at this moment for dpvs.

            Community Discussions

            QUESTION

            Linking external DPVS application (using Makefile) with DPDK built using Meson
            Asked 2021-Jan-25 at 17:06

            DPVS recommends making use of dpdk-stable-18.11.2 for build with Makefile. But the current DPDK LTS version 18.11.11 supports meson-ninja build system along with Makefile system.

            I've been experimenting with the code to port to a more recent DPDK version that only supports meson-ninja instead of the deprecated Makefile system. My issue DPVS link issue is that I am unable to resolve the dependency issues when linking against the DPDK that is built using the meson-ninja. The same works without issues when I try to link against the DPDK 18.11 built using Makefiles. I am running a guest OS with NIC Virtio/E1000 using KVM-QEMU. Guest OS is Ubuntu 18.04 LTS (x64).

            DPDK libraries are linked by DPVS project by dpdk.mk, and current linking options are:

            ...

            ANSWER

            Answered 2021-Jan-25 at 17:06

            The issue you are facing is to due improper use of library linking. The easiest solution is to

            1. Download DPDK 18.11.11 LTS that supports meson.
            2. Build dpdk libraries and install to the desired path.
            3. modify dpvs src/dpdk.mk to check for libdpdk via pkg-conf
            4. modify src/makefile to accommodate the changes for DPDK libraries

            An explanation for the steps are briefly mentioned in section 3.24 Buidlign application with installed DPDK

            [EDIT-1] note: Since there are no updates on the changes done to Makefile from @Anshul, I have created a push request to support the same.

            diff for src/Makefile

            Source https://stackoverflow.com/questions/65844192

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install dpvs

            Use meson-ninja to build DPDK libraries, and export environment variable PKG_CONFIG_PATH for DPDK app (DPVS). The dpdk.mk in DPVS checks the presence of libdpdk. Tips: You can use script dpdk-build.sh to facilitate dpdk build. Run dpdk-build.sh -h for the usage of the script. Next is to set up DPDK hugepage. Our test environment is NUMA system. For single-node system please refer to the link. Install kernel modules and bind NIC with uio_pci_generic driver. Quick start uses only one NIC, normally we use two for FNAT cluster, even four for bonding mode. For example, suppose the NIC we would use to run DPVS is eth0, in the meantime, we still keep another standalone NIC eth1 for debugging. Notes: An alternative to the uio_pci_generic is igb_uio, which is moved to a separated repository dpdk-kmods. A kernel module parameter carrier is added to rte_kni.ko since DPDK v18.11, and the default value for it is "off". We need to load rte_kni.ko with the extra parameter carrier=on to make KNI devices work properly. dpdk-devbind.py -u can be used to unbind driver and switch it back to Linux driver like ixgbe. You can also use lspci or ethtool -i eth0 to check the NIC PCI bus-id. Please refer to DPDK site for more details. Notes: PMD of Mellanox NIC is built on top of libibverbs using the Raw Ethernet Accelerated Verbs AP. It doesn't rely on UIO/VFIO driver. Thus, Mellanox NICs should not bind the igb_uio driver. Refer to Mellanox DPDK for details.
            An alternative to the uio_pci_generic is igb_uio, which is moved to a separated repository dpdk-kmods.
            A kernel module parameter carrier is added to rte_kni.ko since DPDK v18.11, and the default value for it is "off". We need to load rte_kni.ko with the extra parameter carrier=on to make KNI devices work properly.
            It's simple, just set PKG_CONFIG_PATH and build it. Notes: Build dependencies may be needed, such as pkg-config(version 0.29.2+),automake, libnl3, libnl-genl-3.0, openssl, popt and numactl. You can install the missing dependencies by using the package manager of the system, e.g., yum install popt-devel (CentOS). Early pkg-config versions (v0.29.2 before) may cause dpvs build failure. If so, please upgrade this tool. Output files are installed to dpvs/bin.
            Build dependencies may be needed, such as pkg-config(version 0.29.2+),automake, libnl3, libnl-genl-3.0, openssl, popt and numactl. You can install the missing dependencies by using the package manager of the system, e.g., yum install popt-devel (CentOS).
            Early pkg-config versions (v0.29.2 before) may cause dpvs build failure. If so, please upgrade this tool.
            dpvs is the main program.
            dpip is the tool to set IP address, route, vlan, neigh, etc.
            ipvsadm and keepalived come from LVS, both are modified.

            Support

            Please refer to the CONTRIBUTING file for details.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular TCP Libraries

            masscan

            by robertdavidgraham

            wait-for-it

            by vishnubob

            gnet

            by panjf2000

            Quasar

            by quasar

            mumble

            by mumble-voip

            Try Top Libraries by iqiyi

            xHook

            by iqiyiC

            xCrash

            by iqiyiC

            Andromeda

            by iqiyiJava

            Qigsaw

            by iqiyiJava

            FASPell

            by iqiyiPython