All Projects → dodng → BeLibnids

dodng / BeLibnids

Licence: other
It is a platform to use multiprocess to combine dpdk and libnids together to support analyse packets in 10G port.

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects
d
599 projects

Projects that are alternatives of or similar to BeLibnids

Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-50%)
Mutual labels:  fast, high-performance
Hugo Papermod
A fast, clean, responsive Hugo theme
Stars: ✭ 1,202 (+3238.89%)
Mutual labels:  fast, high-performance
Gramework
Fast and Reliable Golang Web Framework
Stars: ✭ 354 (+883.33%)
Mutual labels:  fast, high-performance
Numpy Stl
Simple library to make working with STL files (and 3D objects in general) fast and easy.
Stars: ✭ 356 (+888.89%)
Mutual labels:  fast, high-performance
websocket
WebSocket for fasthttp
Stars: ✭ 51 (+41.67%)
Mutual labels:  fast, high-performance
Jupiter
Jupiter is a high-performance 4-layer network load balance service based on DPDK.
Stars: ✭ 292 (+711.11%)
Mutual labels:  dpdk, high-performance
Shineout
高性能React组件库
Stars: ✭ 577 (+1502.78%)
Mutual labels:  fast, high-performance
sriov-cni
DPDK & SR-IOV CNI plugin
Stars: ✭ 209 (+480.56%)
Mutual labels:  dpdk, high-performance
PyGLM
Fast OpenGL Mathematics (GLM) for Python
Stars: ✭ 167 (+363.89%)
Mutual labels:  fast, high-performance
Clevergo
👅 CleverGo is a lightweight, feature rich and high performance HTTP router for Go.
Stars: ✭ 246 (+583.33%)
Mutual labels:  fast, high-performance
Nonblocking
Implementation of a lock-free dictionary on .Net.
Stars: ✭ 237 (+558.33%)
Mutual labels:  fast, high-performance
yastack
YAStack: User-space network-stack based on DPDK, FreeBSD TCP/IP Stack, EnvoyProxy
Stars: ✭ 90 (+150%)
Mutual labels:  dpdk, high-performance
mydpdkdns
dns server with high performance, based on dpdk.
Stars: ✭ 41 (+13.89%)
Mutual labels:  dpdk, high-performance
LruClockCache
A low-latency LRU approximation cache in C++ using CLOCK second-chance algorithm. Multi level cache too. Up to 2.5 billion lookups per second.
Stars: ✭ 35 (-2.78%)
Mutual labels:  fast, high-performance
shuke
A high performance authority-only dns server implemented with DPDK
Stars: ✭ 45 (+25%)
Mutual labels:  dpdk
httpit
A rapid http(s) benchmark tool written in Go
Stars: ✭ 156 (+333.33%)
Mutual labels:  fast
workerman
An asynchronous event driven PHP socket framework. Supports HTTP, Websocket, SSL and other custom protocols. PHP>=5.4.
Stars: ✭ 10,005 (+27691.67%)
Mutual labels:  high-performance
cstruct-go
a fast c-style struct packer & unpacker for golang
Stars: ✭ 28 (-22.22%)
Mutual labels:  fast
thread-pool
A modern thread pool implementation based on C++20
Stars: ✭ 104 (+188.89%)
Mutual labels:  high-performance
rust-sthash
Very fast cryptographic hashing for large messages.
Stars: ✭ 61 (+69.44%)
Mutual labels:  fast

BeLibnids analysing packets use libnids and dpdk

It is a platform to use multiprocess to combine dpdk and libnids together to support analyse packets in 10G port.

##0.What is ? a:It is a platform to use multiprocess to recevie and process packets from one or more ports.

b:It use RSS queue and symmetric hash to Guarantee one tcp stream just be processed by only one process.

c:It use multiprocess to solve the libnids resources Conflict.

d:I work it in CentOS 6.4 and 6.5,you have all codes,of course you can change.

###Technical Architecture

architecture

##1.How to compile ? a:compile intel dpdk "http://www.dpdk.org/",you can download or use doc/dpdk-1.5.0r2.tar.gz.

b:cd libnids-1.24/src and compile it until generate a libnids.a (I register nids_syslog_return function instead of nids_syslog to improve performance in multiprocess)

c:cd symmetric_mp and make clean;make (If you want to learn more,look at 15.1.3 in intel-dpdk-sample-applications-user-guide.pdf)

##2.How to work ? cd symmetric_mp and use start.sh

Usage ./start.sh portid lcore_start queue_num

portid:you can use port 0,1... (notice: use start.sh one time just can use only one port) lcore_start:you can use cpu 0,1...(the first use cpu id) queue_num:use RSS queue numbers for this port(defaultly one queue is just for one cpu or one process)

Example:

./start.sh 0 2 8

This command will launch 8 process to receive and process packets from port 0. and use cpu 2,3,4,5,6,7,8,9.(The cpu numbers is equal with queue_num) The performance in queue numbers or port numbers is in doc/performance.report

###performance ###dns random request ip,every packet len 73 bytes.column:PPS(packets per second)

performance

##3.How to begin coding ?

a: cd pkt_plugin ,you can see sniff.c.It is almost the same with libnids-1.24/samples/sniff.c. The 2 files diff is pkt_plugin/sniff.c.diff.

b: you can write you own code to process packets. (Defaultly must Follow libnids interface,Of course you also can Abandoned libnids)


author email:[email protected]

welcome to any problems.

If it can help you,I will be very happy.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].