PFQ is a functional framework designed for the Linux operating system built for efficient packets capture/transmission (10G, 40G and beyond), in-kernel functional processing, kernel-bypass and packets steering across groups of sockets/end-points.
It is highly optimized for multi-core architecture, as well as for network devices equipped with multiple hardware queues.
Compliant with any NIC, it provides a script that generates accelerated network device drivers starting from the source code.
PFQ enables the development of high-performance network applications, and it is shipped with a custom version of libpcap that accelerate and parallelize legacy applications.
Besides, a pure functional language designed for early stages in-kernel packet processing is included: pfq-lang.
Pfq-Lang is inspired by Haskell and is intended to define applications that run on top of network device drivers. Through pfq-lang it is possible to build efficient bridges, port mirrors, simple firewalls, network balancers and so forth.
The framework includes the source code of the PFQ kernel module, user-space libraries for C, C++11-14, Haskell language, an accelerated pcap library, an implementation of pfq-lang as eDSL for C++/Haskell, an experimental pfq-lang compiler and a set of diagnostic tools.
Also Read – Vuls : Vulnerability Scanner for Linux/FreeBSD, Agentless, Written in Go
Features
Credit : Nicola Bonelli
SSH (Secure Shell) is a cryptographic network protocol that creates a secure, encrypted connection between your…
Node.js is an open-source, cross-platform JavaScript runtime that lets you run JavaScript on the server side,…
DNS (Domain Name System) is what translates domain names into IP addresses. When you type a…
Docker is a containerization platform that lets you package applications and their dependencies into lightweight, portable…
Yarn is a fast, reliable JavaScript package manager that works alongside npm. It was built to fix…
Webmin is an open-source, browser-based control panel for Linux server administration. Instead of managing your server…