Skip to content

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

Notifications You must be signed in to change notification settings

dodng/BeLibnids

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:dodng12@163.com

welcome to any problems.

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

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •