PF_RING | High-speed packet processing framework | Audio Utils library

 by   ntop C Version: 8.4.0 License: LGPL-2.1

kandi X-RAY | PF_RING Summary

kandi X-RAY | PF_RING Summary

PF_RING is a C library typically used in Audio, Audio Utils applications. PF_RING has no bugs, it has no vulnerabilities, it has a Weak Copyleft License and it has medium support. You can download it from GitHub.

PF_RING is a Linux kernel module and user-space framework that allows you to process packets at high-rates while providing you a consistent API for packet processing applications.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              PF_RING has a medium active ecosystem.
              It has 2436 star(s) with 336 fork(s). There are 99 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 27 open issues and 738 have been closed. On average issues are closed in 153 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of PF_RING is 8.4.0

            kandi-Quality Quality

              PF_RING has no bugs reported.

            kandi-Security Security

              PF_RING has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              PF_RING is licensed under the LGPL-2.1 License. This license is Weak Copyleft.
              Weak Copyleft licenses have some restrictions, but you can use them in commercial projects.

            kandi-Reuse Reuse

              PF_RING releases are available to install and integrate.

            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 PF_RING
            Get all kandi verified functions for this library.

            PF_RING Key Features

            No Key Features are available at this moment for PF_RING.

            PF_RING Examples and Code Snippets

            No Code Snippets are available at this moment for PF_RING.

            Community Discussions

            QUESTION

            How to allocate large contiguous, memory regions in Linux
            Asked 2020-Mar-12 at 18:41

            Yes, I will ultimately be using this for DMA but lets leave coherency aside for the moment. I have 64 bit BAR registers, therefore, AFAIK, all of RAM (e.g. higher than 4G) is available for DMA.

            I am looking for about 64MB of contiguous RAM. Yes, that's a lot.

            Ubuntu 16 and 18 have CONFIG_CMA=y but CONFIG_DMA_CMA is not set at kernel compile time.

            I note that if both were set (at Kernel build time) I could simply call dma_alloc_coherent, however, for logistical reasons, it is undesirable to recompile the kernel.

            The machines will always have at least 32GB of RAM, do not run anything RAM intensive, and the kernel module will load shortly after boot before RAM becomes significantly fragmented and, AFAIK, nothing else is using the CMA.

            I have set the kernel parameter CMA=1G. (and have tried 256M and 512M)

            ...

            ANSWER

            Answered 2020-Feb-20 at 15:49

            The short version is that __GFP_DIRECT_RECLAIM (also provided by __GFP_RECLAIM) is necessary as dma_alloc_contiguous is eventually called and it checks, via a call to gfpflags_allow_blocking, that blocking is okay. I used the usual GFP_KERNEL which provides __GFP_RECLAIM | __GFP_IO | __GFP_FS. But before all that one must call dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) with DMA_BIT_MASK(64) not DMA_BIT_MASK(32).

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

            QUESTION

            User space bridging - Linux vs. FreeBSD
            Asked 2017-Jun-28 at 16:25
            Background:

            I'm working on porting a packet parsing/manipulation program from FreeBSD to Linux (specifically Debian - jessie). This program implements a bi-directional bridge between two physical interfaces while performing parsing/manipulation prior to TX operations.

            In FreeBSD, this application used Pcap to RX/TX. In Linux, so far I've tested with Pcap, PACKET_MMAP (using TPACKET_V2) and Vanilla PF_RING.

            Test Results:

            Using the same hardware and laboratory environment, I observed the following (approximate) throughput results from several tests performed with iperf:

            • FreeBSD Kernel bridge: 880Mb/s
            • FreeBSD Pcap (user space) bridge: 700Mb/s
            • Debian Kernel bridge: 880Mb/s
            • Debian Pcap (user space) bridge: 120Kb/s
            • Debian Vanilla PF_RING (user space) bridge: 980Kb/s
            • Debian PACKET_MMAP (user space) bridge: 480Kb/s
            Thoughts and Question:

            The Debian user space speeds seem ridiculous to me. They're unusable - and I suspect I'm missing something. Is there a system option I need to enable ("go fast", lol)?

            Or is this just how it is with Linux user space bridging?

            Edit / Update

            I have a lingering suspicion that there's an administrative limitation affecting the Debian tests. I'm searching system documentation for (something / anything) to no avail. Any ideas on what could be limiting this?

            ...

            ANSWER

            Answered 2017-Jun-28 at 16:25

            Obscure questions find obscure answers...

            After much research I found the "problems" with Linux in this case is actually the result of optimizations. By default, apparently, the systems are optimizing for large sustained loads (so YMMV with the below "fix").

            I resolved the speed issues and found the same throughput as the FreeBSD systems by using ethtool to adjust the optimizations on my two bridge interfaces:

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

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

            Vulnerabilities

            No vulnerabilities reported

            Install PF_RING

            You can download it from GitHub.

            Support

            If you want to learn more about PF_RING™ please visit the User's Guide and the API Documentation.
            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 Audio Utils Libraries

            howler.js

            by goldfire

            fingerprintjs

            by fingerprintjs

            Tone.js

            by Tonejs

            AudioKit

            by AudioKit

            sonic-pi

            by sonic-pi-net

            Try Top Libraries by ntop

            n2n

            by ntopC

            nDPI

            by ntopC

            n2disk

            by ntopC

            docker-ntop

            by ntopShell

            packager

            by ntopShell