Dear All,
I am trying to install pf_ring on centos 6 using its user guide. I am stuck at page 10 for this command

$ cd <PF_RING PATH>/userland/lib
$ ./configure
$ make

I get this error

make
ar x libs/libpfring_dna_x86_64.a
ar x libs/libpfring_mod_virtual_x86_64.a
gcc -g  -Wall -fPIC -I../../kernel -I../../vPF_RING/guest/kernel  -D HAVE_DNA -D HAVE_VIRTUAL     -c pfring_mod.c -o pfring_mod.o
pfring_mod.c:22:30: error: linux/net_tstamp.h: No such file or directory
pfring_mod.c: In function ‘pfring_enable_hw_timestamp’:
pfring_mod.c:64: error: storage size of ‘hwconfig’ isn’t known
pfring_mod.c:74: error: ‘HWTSTAMP_TX_OFF’ undeclared (first use in this function)
pfring_mod.c:74: error: (Each undeclared identifier is reported only once
pfring_mod.c:74: error: for each function it appears in.)
pfring_mod.c:75: error: ‘HWTSTAMP_FILTER_ALL’ undeclared (first use in this function)
pfring_mod.c:64: warning: unused variable ‘hwconfig’
make: *** [pfring_mod.o] Error 1

Recommended Answers

All 81 Replies

What version of PF_RING are you trying to build? Where did you download it from (ntop)?

Dear Rubberman,
Ok accordingly to the user guide on page 8 I followed first this link http://www.ntop.org/get-started/download/. So the version is based on svn command I am using to the site.Then I followed the instruction under the title PF_RING. Then every thing was ok then I followed accordingly till page 10. Then when I tried the examples on page 11 it gives me the error. For better view. Then I tried to remove the module and below are my steps and also all I have capture for your view.

First I did rmmod but you will notice it says the module does not exist why ya? Then I did a make on the kernel, sudo insmod ./pf_ring.ko, cd ../userland,make,cd lib,./configure,sudo make install,cd ../libpcap,make, then finally I do a cd .. followed by cd examples then ./pfcount -i eth0 and I get error not such file or directory. Can you please verify if I have followed accordingly the steps? Thank you I have higlighted in red.

[root@localhost kernel]# rmmod pf_ring
ERROR: Module pf_ring does not exist in /proc/modules
[root@localhost kernel]# cd ..
[root@localhost PF_RING]# rmmod pf_ring
ERROR: Module pf_ring does not exist in /proc/modules
[root@localhost PF_RING]# cd kernel
[root@localhost kernel]# ls
arm.sh modules.order pf_ring.ko pf_ring.mod.o
linux Module.symvers pf_ring.ko.unsigned pf_ring.o
Makefile pf_ring.c pf_ring.mod.c plugins
[root@localhost kernel]# make
********** WARNING WARNING WARNING **********
*
* Compiling PF_RING as root might lead you to compile errors
* Please compile PF_RING as unpriviliged user
 *
*********************************************
make -C /lib/modules/2.6.32-71.29.1.el6.x86_64/build SUBDIRS=/usr/local/pfring/PF_RING/kernel EXTRA_CFLAGS='-I/usr/local/pfring/PF_RING/kernel -DSVN_REV="\"4939\""' modules
make[1]: Entering directory `/usr/src/kernels/2.6.32-71.29.1.el6.x86_64'
 Building modules, stage 2.
MODPOST 1 modules
 make[1]: Leaving directory `/usr/src/kernels/2.6.32-71.29.1.el6.x86_64'
cd plugins; make
 make[1]: Entering directory `/usr/local/pfring/PF_RING/kernel/plugins'
make -C /lib/modules/2.6.32-71.29.1.el6.x86_64/build SUBDIRS=/usr/local/pfring/PF_RING/kernel/plugins modules
make[2]: Entering directory `/usr/src/kernels/2.6.32-71.29.1.el6.x86_64'
Building modules, stage 2.
MODPOST 1 modules
make[2]: Leaving directory `/usr/src/kernels/2.6.32-71.29.1.el6.x86_64'
make[1]: Leaving directory `/usr/local/pfring/PF_RING/kernel/plugins'
[root@localhost kernel]# sudo insmod ./pf_ring.ko> > > > [root@localhost kernel]# cd ../userland
[root@localhost userland]# make
 cd lib; ./configure; make
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking linux/net_tstamp.h usability... no
checking linux/net_tstamp.h presence... no
checking for linux/net_tstamp.h... no
checking DNA support... yes
checking Virtual support... yes
checking Userspace ring support... no
checking for nl_handle_alloc in -lnl... no
checking for dag_get_stream_erf_types in -ldag... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ../examples/Makefile
config.status: creating ../c++/Makefile
make[1]: Entering directory `/usr/local/pfring/PF_RING/userland/lib'
ar x libs/libpfring_dna_x86_64.a
ar x libs/libpfring_mod_virtual_x86_64.a
gcc -g -Wall -fPIC -I../../kernel -I../../vPF_RING/guest/kernel -D HAVE_DNA -D HAVE_VIRTUAL -c pfring_mod.c -o pfring_mod.o
pfring_mod.c:22:30: error: linux/net_tstamp.h: No such file or directory
pfring_mod.c: In function ‘pfring_enable_hw_timestamp’:
pfring_mod.c:67: error: storage size of ‘hwconfig’ isn’t known
pfring_mod.c:77: error: ‘HWTSTAMP_TX_OFF’ undeclared (first use in this function)
pfring_mod.c:77: error: (Each undeclared identifier is reported only once
pfring_mod.c:77: error: for each function it appears in.)
pfring_mod.c:78: error: ‘HWTSTAMP_FILTER_ALL’ undeclared (first use in this function)
pfring_mod.c:67: warning: unused variable ‘hwconfig’
make[1]: *** [pfring_mod.o] Error 1
make[1]: Leaving directory `/usr/local/pfring/PF_RING/userland/lib'
make: *** [libpfring] Error 2
[root@localhost userland]# cd lib
[root@localhost lib]# ls
config.log notused pfring_mod.c pfring.o
 config.status pfring.c pfring_mod_dag.c pfring_utils.c
configure pfring_dna.o pfring_mod_dag.h pfring_utils.h
configure.in pfring_dna_v2.o pfring_mod_dna.c README
COPYING pfring_e1000e_dna.o pfring_mod_dna.h README.REDHAT
libs pfring.h pfring_mod.h utils
Makefile pfring_igb_dna.o pfring_mod_virtual.h
Makefile.in pfring_ixgbe_dna.o pfring_mod_virtual.o
[root@localhost lib]# ./configure> > > > checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
 checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking linux/net_tstamp.h usability... no
checking linux/net_tstamp.h presence... no
 checking for linux/net_tstamp.h... no
checking DNA support... yes
 checking Virtual support... yes
checking Userspace ring support... no
checking for nl_handle_alloc in -lnl... no
checking for dag_get_stream_erf_types in -ldag... no
configure: creating ./config.status
 config.status: creating Makefile
 config.status: creating ../examples/Makefile
 config.status: creating ../c++/Makefile
 [root@localhost lib]# make
> > > > ar x libs/libpfring_dna_x86_64.a
> > > > ar x libs/libpfring_mod_virtual_x86_64.a
> > > > gcc -g -Wall -fPIC -I../../kernel -I../../vPF_RING/guest/kernel -D HAVE_DNA -D HAVE_VIRTUAL -c pfring_mod.c -o pfring_mod.o
> > > > pfring_mod.c:22:30: error: linux/net_tstamp.h: No such file or directory
> > > > pfring_mod.c: In function ‘pfring_enable_hw_timestamp’:
> > > > pfring_mod.c:67: error: storage size of ‘hwconfig’ isn’t known
> > > > pfring_mod.c:77: error: ‘HWTSTAMP_TX_OFF’ undeclared (first use in this function)
> > > > pfring_mod.c:77: error: (Each undeclared identifier is reported only once
> > > > pfring_mod.c:77: error: for each function it appears in.)
> > > > pfring_mod.c:78: error: ‘HWTSTAMP_FILTER_ALL’ undeclared (first use in this function)
> > > > pfring_mod.c:67: warning: unused variable ‘hwconfig’
> > > > make: *** [pfring_mod.o] Error 1
> > > > [root@localhost lib]# sudo make install
> > > > ar x libs/libpfring_dna_x86_64.a
> > > > ar x libs/libpfring_mod_virtual_x86_64.a
> > > > gcc -g -Wall -fPIC -I../../kernel -I../../vPF_RING/guest/kernel -D HAVE_DNA -D HAVE_VIRTUAL -c pfring_mod.c -o pfring_mod.o
> > > > pfring_mod.c:22:30: error: linux/net_tstamp.h: No such file or directory
> > > > pfring_mod.c: In function ‘pfring_enable_hw_timestamp’:
> > > > pfring_mod.c:67: error: storage size of ‘hwconfig’ isn’t known
> > > > pfring_mod.c:77: error: ‘HWTSTAMP_TX_OFF’ undeclared (first use in this function)
> > > > pfring_mod.c:77: error: (Each undeclared identifier is reported only once
> > > > pfring_mod.c:77: error: for each function it appears in.)
> > > > pfring_mod.c:78: error: ‘HWTSTAMP_FILTER_ALL’ undeclared (first use in this function)
> > > > pfring_mod.c:67: warning: unused variable ‘hwconfig’
> > > > make: *** [pfring_mod.o] Error 1
> > > > [root@localhost lib]# cd ../libpcap
> > > > [root@localhost libpcap]# ./configure
> > > > checking build system type... x86_64-unknown-linux-gnu
> > > > checking host system type... x86_64-unknown-linux-gnu
> > > > checking target system type... x86_64-unknown-linux-gnu
> > > > checking for gcc... gcc
> > > > checking whether the C compiler works... yes
> > > > checking for C compiler default output file name... a.out
> > > > checking for suffix of executables... 
> > > > checking whether we are cross compiling... no
> > > > checking for suffix of object files... o
> > > > checking whether we are using the GNU C compiler... yes
> > > > checking whether gcc accepts -g... yes
> > > > checking for gcc option to accept ISO C89... none needed
> > > > checking gcc version... 4
> > > > checking for inline... inline
> > > > checking for __attribute__... yes
> > > > checking how to run the C preprocessor... gcc -E
> > > > checking for grep that handles long lines and -e... /bin/grep
> > > > checking for egrep... /bin/grep -E
> > > > checking for ANSI C header files... yes
> > > > checking for sys/types.h... yes
> > > > checking for sys/stat.h... yes
> > > > checking for stdlib.h... yes
> > > > checking for string.h... yes
> > > > checking for memory.h... yes
> > > > checking for strings.h... yes
> > > > checking for inttypes.h... yes
> > > > checking for stdint.h... yes
> > > > checking for unistd.h... yes
> > > > checking sys/bitypes.h usability... yes
> > > > checking sys/bitypes.h presence... yes
> > > > checking for sys/bitypes.h... yes
> > > > checking for int8_t... yes
> > > > checking for u_int8_t... yes
> > > > checking for int16_t... yes
> > > > checking for u_int16_t... yes
> > > > checking for int32_t... yes
> > > > checking for u_int32_t... yes
> > > > checking for int64_t... yes
> > > > checking for u_int64_t... yes
> > > > checking for special C compiler options needed for large files... no
> > > > checking for _FILE_OFFSET_BITS value needed for large files... no
> > > > checking for _LARGEFILE_SOURCE value needed for large files... no
> > > > checking sys/ioccom.h usability... no
> > > > checking sys/ioccom.h presence... no
> > > > checking for sys/ioccom.h... no
> > > > checking sys/sockio.h usability... no
> > > > checking sys/sockio.h presence... no
> > > > checking for sys/sockio.h... no
> > > > checking limits.h usability... yes
> > > > checking limits.h presence... yes
> > > > checking for limits.h... yes
> > > > checking paths.h usability... yes
> > > > checking paths.h presence... yes
> > > > checking for paths.h... yes
> > > > checking for net/pfvar.h... no
> > > > checking for netinet/if_ether.h... yes
> > > > checking for ANSI ioctl definitions... yes
> > > > checking for strerror... yes
> > > > checking for strlcpy... no
> > > > checking for vsnprintf... yes
> > > > checking for snprintf... yes
> > > > checking for library containing gethostbyname... none required
> > > > checking for library containing socket... none required
> > > > checking for library containing putmsg... none required
> > > > checking for ether_hostton... yes
> > > > checking whether ether_hostton is declared... no
> > > > checking netinet/ether.h usability... yes
> > > > checking netinet/ether.h presence... yes
> > > > checking for netinet/ether.h... yes
> > > > checking whether ether_hostton is declared... yes
> > > > checking if --disable-protochain option is specified... enabled
> > > > checking packet capture type... linux
> > > > checking Linux kernel version... 2
> > > > checking for linux/wireless.h... yes
> > > > checking for nl_handle_alloc in -lnl... no
> > > > checking if if_packet.h has tpacket_stats defined... yes
> > > > checking if tpacket_auxdata struct has tp_vlan_tci member... no
> > > > checking for getifaddrs... yes
> > > > checking ifaddrs.h usability... yes
> > > > checking ifaddrs.h presence... yes
> > > > checking for ifaddrs.h... yes
> > > > checking for socklen_t... yes
> > > > checking for getaddrinfo... yes
> > > > checking whether to build optimizer debugging code... no
> > > > checking whether to build parser debugging code... no
> > > > checking whether we have DAG API headers... no (/usr/local/include)
> > > > checking whether we have the DAG API... no
> > > > checking whether we have Septel API... no
> > > > checking whether we have Myricom Sniffer API... no (/opt/snf)
> > > > checking for flex... flex
> > > > checking for flex 2.4 or higher... yes
> > > > checking for bison... bison
> > > > checking for ranlib... ranlib
> > > > checking if sockaddr struct has the sa_len member... no
> > > > checking if sockaddr_storage struct exists... yes
> > > > checking if dl_hp_ppa_info_t struct has dl_module_id_1 member... no
> > > > checking if unaligned accesses fail... no
> > > > checking for USB sniffing support... yes
> > > > configure: Device for USB sniffing is /dev/usbmon
> > > > checking linux/usbdevice_fs.h usability... yes
> > > > checking linux/usbdevice_fs.h presence... yes
> > > > checking for linux/usbdevice_fs.h... yes
> > > > checking if usbdevfs_ctrltransfer struct has bRequestType member... yes
> > > > checking bluetooth/bluetooth.h usability... no
> > > > checking bluetooth/bluetooth.h presence... no
> > > > checking for bluetooth/bluetooth.h... no
> > > > configure: Bluetooth sniffing is not supported; install bluez-lib devel to enable it
> > > > checking for linux/can.h... yes
> > > > configure: CAN sniffing is supported
> > > > checking for a BSD-compatible install... /usr/bin/install -c
> > > > configure: creating ./config.status
> > > > config.status: creating Makefile
> > > > config.status: creating pcap-filter.manmisc
> > > > config.status: creating pcap-linktype.manmisc
> > > > config.status: creating pcap-savefile.manfile
> > > > config.status: creating pcap.3pcap
> > > > config.status: creating pcap_compile.3pcap
> > > > config.status: creating pcap_datalink.3pcap
> > > > config.status: creating pcap_dump_open.3pcap
> > > > config.status: creating pcap_list_datalinks.3pcap
> > > > config.status: creating pcap_open_dead.3pcap
> > > > config.status: creating pcap_open_offline.3pcap
> > > > config.status: creating config.h
> > > > config.status: config.h is unchanged
> > > > [root@localhost libpcap]# make> > > > VER=`cat ./VERSION`; \
> > > > MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' ./VERSION`; \
> > > > gcc -shared -Wl,-soname,libpcap.so.$MAJOR_VER \
> > > > -o libpcap.so.$VER pcap-linux.o pcap-usb-linux.o pcap-can-linux.o fad-getad.o pcap.o inet.o gencode.o optimize.o nametoaddr.o etherent.o savefile.o sf-pcap.o sf-pcap-ng.o pcap-common.o bpf_image.o bpf_dump.o scanner.o grammar.o bpf_filter.o version.o 
> > > >

As the warning said, compile your applications as a normal, not root, user. Once it has built successfully, execute the command "make install" as root.

Dear Rubberman,
I tried this command [root@localhost kernel]# make as normal user but I get permisssion errors too. What to do ya? I am kind of confuse?

I don't know - please list errors/warnings when you build as regular user. FWIF, you MAY need to first execute "make clean" as root since you started building as root originally. As a result, a lot of the files will be owned by root, resulting in the permission errors that you are seeing - likely.

Dear Rubberman,
How to make clean now? U mean go into the kernel module and just type make clean is it? Thank you.

As root, go to pf_ring source directory where you tried to build the package, and execute the command "make clean" first, which will remove all the results of the original compilation. Next, switch back to a normal user, and go to the pf_ring source directory and execute the command "make". What is the result of that?

Dear Rubberman,
Ok I went into the root and clean it accordingly. Then I went into a another account abd below is the message I received.

[testUser1@localhost ~]$ cd ..
[testUser1@localhost home]$ cd ..
[testUser1@localhost /]$ cd usr/local/pfring/PF_RING
[testUser1@localhost PF_RING]$ cd kernel
[testUser1@localhost kernel]$ make
make -C /lib/modules/2.6.32-71.29.1.el6.x86_64/build SUBDIRS=/usr/local/pfring/PF_RING/kernel EXTRA_CFLAGS='-I/usr/local/pfring/PF_RING/kernel -DSVN_REV="\"4941\""' modules
make[1]: Entering directory `/usr/src/kernels/2.6.32-71.29.1.el6.x86_64'
mkdir: cannot create directory `/usr/local/pfring/PF_RING/kernel/.tmp_versions': Permission denied
  CC [M]  /usr/local/pfring/PF_RING/kernel/pf_ring.o
Assembler messages:
Fatal error: can't create /usr/local/pfring/PF_RING/kernel/.tmp_pf_ring.o: Permission denied
/usr/local/pfring/PF_RING/kernel/pf_ring.c: In function ‘buffer_ring_handler’:
/usr/local/pfring/PF_RING/kernel/pf_ring.c:3154: warning: pointer targets in assignment differ in signedness
/usr/local/pfring/PF_RING/kernel/pf_ring.c: In function ‘ring_getsockopt’:
/usr/local/pfring/PF_RING/kernel/pf_ring.c:5832: warning: pointer targets in passing argument 4 of ‘plugin_registration[(int)rule.plugin_action.plugin_id]->pfring_plugin_get_stats’ differ in signedness
/usr/local/pfring/PF_RING/kernel/pf_ring.c:5832: note: expected ‘u_char *’ but argument is of type ‘char *’
/usr/local/pfring/PF_RING/kernel/pf_ring.c:5895: warning: pointer targets in passing argument 4 of ‘plugin_registration[(int)rule->rule.plugin_action.plugin_id]->pfring_plugin_get_stats’ differ in signedness
/usr/local/pfring/PF_RING/kernel/pf_ring.c:5895: note: expected ‘u_char *’ but argument is of type ‘char *’
make[2]: *** [/usr/local/pfring/PF_RING/kernel/pf_ring.o] Error 2
make[1]: *** [_module_/usr/local/pfring/PF_RING/kernel] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.32-71.29.1.el6.x86_64'
make: *** [all] Error 2
[testUser1@localhost kernel]$

OK. I'll have to download and try this on my system. It seems to be wanting to create a file in /usr/local which you don't have permissions for. This should not happen until you try to execute "make install". I'll get back to you about this.

Dear Rubberman,
Thank you actually usr/local is for user apps right? Thank you.

Dear Rubberman,
Thank you actually usr/local is for user apps right? Thank you.

Not really. It is for locally installed applications, but it is still owned by root. That is why most Linux source packages install themselves there by default. You should build a package as a regular user, but then run "make install" as root, or sudo.

Dear Rubberman,
I am kind of lost what do you mean by build a package? How to do it? Thank you. I thought PF_RING is already a package right?

There are packages already built into a binary format, such as you normally get via your system's package manager - synaptic/apt-get in Ubuntu/Debian distributions, or yum/rpm in Red Hat distributions, etc, and then there are source packages that you build on your system directly. Both are "packages", but in one case they are pre-built for you, and in the other case you build them yourself from source code. Some are not available pre-built, so in that case you will have to configure/build them yourself.

Dear Rubberman,
Ok for this case of PR_RING we have to make ourselves rite. So where do you think I went wrong during the build of it?

Ok. I just downloaded and installed the PF_RING 4.6.0 source code and was able to build it on my RHEL (Scientific Linux) 6.0 system without problems, so it should build ok on your CentOS 6 system also. There is no configure script for that version. Haven't tried the SVN (bleeding edge) version yet. Will do that and report back.

Dear Rubberman,
You took from the ntop page is it? Then you follow the user guide is it? Did you run as root or normal user? Thank you.

Ok. Since it is building a kernel module, you need to install the kernel-headers and kernel-devel packages on your system. Did you do that first?

Dear Rubberman,
No I am not aware of those because I just followed the user guide step by step and this was not stated there. Can you guide me step by step how you did and manage to run the example right?

You took from the ntop page is it? Then you follow the user guide is it? Did you run as root or normal user? Thank you.

I build all this stuff as regular user, then I install as root, or using sudo.

Ok. Just finished building top level of the SVN version and got some errors:

/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c: In function ‘ixgbe_set_eeprom’:               
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:971: error: storage size of ‘perfect_cmd’ isn’t known                                                                                                                                      
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1035: error: invalid application of ‘sizeof’ to incomplete type ‘struct ethtool_rx_ntuple’                                                                                                 
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1039: error: dereferencing pointer to incomplete type                                                                                                                                      
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1039: error: ‘ETHTOOL_RXNTUPLE_ACTION_DROP’ undeclared (first use in this function)                                                                                                        
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1039: error: (Each undeclared identifier is reported only once                                                                                                                             
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1039: error: for each function it appears in.)
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1041: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1044: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1048: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1051: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1054: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1057: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1062: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1063: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1067: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1068: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1072: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1073: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1077: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1078: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1082: error: dereferencing pointer to incomplete type
/home/bboyle/Downloads/Network_Tools/PF_RING/drivers/DNA/ixgbe-3.3.9-DNA/src/ixgbe_ethtool.c:1083: error: dereferencing pointer to incomplete type

So, I have to suggest that you use the stable version instead.

Dear Rubberman,
So which is the stable one to pick now cause I tried the svn it was also messy. Any good suggestion? Thank you.

1. Go to this page: http://sourceforge.net/projects/ntop/files/PF_RING/
2. Click on the green "Download" button.
3. Go to directory where the PF_RING-4.6.0.tgz file was stored.
4. Execute the command "tar -zxvf PF_RING-4.6.0.tgz
5. Cd into the PF_RING-4.6.0 directory
6. Execute the command "make". You might get some warnings, but you should not get errors. If you do get errors, report them back here.
7. If #6 succeeded, then you can run "make install" as root, or if you are a sudoer, run "sudo make install".

Note that it should create 5 ethernet drivers and a couple of other kernel modules. Here is a list of the ones it built on my system:
./kernel/pf_ring.ko
./kernel/plugins/dummy_plugin.ko
./drivers/intel/e1000/e1000-8.0.25/src/e1000.ko
./drivers/intel/ixgbe/ixgbe-3.1.15-FlowDirector-NoTNAPI/src/ixgbe.ko
./drivers/intel/igb/igb-2.4.12/src/igb.ko
./drivers/intel/e1000e/e1000e-1.2.17/src/e1000e.ko
./drivers/neterion/vxge/vxge.ko

Dear Rubberman,
For step 6 it run without error but some of it was answered as no but I could not capture the screen for u because the new ones over write the old how to capture next time? Then in my user account I tried sudo make install it says this user is not sudoers what does that mean. So then re-login as root and below is what I run and got. Once this is successful how to run the examples? Thank you.

[root@localhost /]# cd /home/testUser1/Downloads
[root@localhost Downloads]# cd PF_RING-4.6.0
[root@localhost PF_RING-4.6.0]# ls
doc  drivers  kernel  legacy  Makefile  README  userland
[root@localhost PF_RING-4.6.0]# make install
make: *** No rule to make target `install'.  Stop.
[root@localhost PF_RING-4.6.0]# cd ..

Dear Rubberman,
What happened now in root account I went into kernel folder and type make install it works now the example. I want to understand did I do rightly? Secondly why must we run the example in this format ./pfcount -1 etho? Thank you.

Not enough detailed information to answer your question...

Dear Rubberman,
Ok let me explain. First I followed all your steps till step 7 I was stuck and got this message when I ran the make install. Then what I did was went into kernel folder and typed make install it worked and my examples also could work. Therefore I would like to check with you did I do things correctly?

[root@localhost /]# cd /home/testUser1/Downloads
[root@localhost Downloads]# cd PF_RING-4.6.0
[root@localhost PF_RING-4.6.0]# ls
doc  drivers  kernel  legacy  Makefile  README  userland
[root@localhost PF_RING-4.6.0]# make install
make: *** No rule to make target `install'.  Stop.
[root@localhost PF_RING-4.6.0]# cd ..[root@localhost /]# cd /home/testUser1/Downloads
[root@localhost Downloads]# cd PF_RING-4.6.0
[root@localhost PF_RING-4.6.0]# ls
doc  drivers  kernel  legacy  Makefile  README  userland
[root@localhost PF_RING-4.6.0]# make install
make: *** No rule to make target `install'.  Stop.
[root@localhost PF_RING-4.6.0]# cd ..

Well, if you were able to get it to install, and can use it, then I guess it worked! :-)

Dear Rubberman,
How was actually your step 7. Because for step 7 I logged as root. Then I go into the PF_RING directory and typed make install I got this error. Originally is this how your step 7 works? Maybe you can share with me how your step 7 works?

root@localhost PF_RING-4.6.0]# make install
make: *** No rule to make target `install'.  Stop.

Well, I didn't actually install it. I just verified that I could build it successfully. I didn't verify that there was no install target for PF_RING itself. Sorry if it confused you. The kernel modules and libraries could be manually installed if desired, or necessary... :-(

Dear Rubberman,
Is ok that is why at step 7 I got lost n confuse wandering why you could do it and not me hehe is ok. Anyway thank you very much with walking through me all the way. Do you think if I download the new version will it work on the same steps as you have define to me earlier? I want to learn some things from you about sudo how it works?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.