ntop / PF_RING

High-speed packet processing framework
http://www.ntop.org
GNU Lesser General Public License v2.1
2.71k stars 349 forks source link

pf_ring + kernel 4.2.3 = compilation error #44

Closed leleobhz closed 9 years ago

leleobhz commented 9 years ago

Im getting the following error installing in CentOS 7 + kernel 4.2.3-elrepo:

DKMS make.log for pfring-6.1.1 for kernel 4.2.3-1.el7.elrepo.x86_64 (x86_64)
Ter Out  6 15:05:57 BRT 2015
********** 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/4.2.3-1.el7.elrepo.x86_64/build SUBDIRS=/var/lib/dkms/pfring/6.1.1/build EXTRA_CFLAGS='-I/var/lib/dkms/pfring/6.1.1/build -DGIT_REV="\"dev:f3689fc0b1c6fb29827d2cb35ba710ec21e114ea\""' modules
make[1]: Entrando no diretório `/usr/src/kernels/4.2.3-1.el7.elrepo.x86_64'
  CC [M]  /var/lib/dkms/pfring/6.1.1/build/pf_ring.o
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_sock_destruct’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:945:9: note: in expansion of macro ‘ring_sk’
   pfr = ring_sk(sk);
         ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_alloc_mem’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:1730:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_insert’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:1827:34: note: in expansion of macro ‘ring_sk’
   pfr = (struct pf_ring_socket *)ring_sk(sk);
                                  ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_remove’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:1847:42: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr_to_delete = ring_sk(sk_to_delete);
                                          ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:1860:11: note: in expansion of macro ‘ring_sk’
     pfr = ring_sk(sk);
           ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘unregister_plugin’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4282:13: note: in expansion of macro ‘ring_sk’
       pfr = ring_sk(sk);
             ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘skb_ring_handler’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4607:13: note: in expansion of macro ‘ring_sk’
       pfr = ring_sk(sk);
             ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4697:14: note: in expansion of macro ‘ring_sk’
        pfr = ring_sk(skElement);
              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_create’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4885:3: error: too few arguments to function ‘sk_alloc’
   sk = sk_alloc(net, PF_INET, GFP_KERNEL, &ring_proto);
   ^
In file included from include/linux/tcp.h:22:0,
                 from include/linux/ipv6.h:69,
                 from /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:93:
include/net/sock.h:1515:14: note: declared here
 struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4898:3: note: in expansion of macro ‘ring_sk’
   ring_sk(sk) = ring_sk_datatype(kmalloc(sizeof(*pfr), GFP_KERNEL));
   ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4900:14: note: in expansion of macro ‘ring_sk’
   if(!(pfr = ring_sk(sk)))
              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4944:9: note: in expansion of macro ‘ring_sk’
   kfree(ring_sk(sk));
         ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_release’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:5840:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:5970:3: note: in expansion of macro ‘ring_sk’
   ring_sk(sk) = NULL;
   ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘packet_ring_bind’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6030:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_mmap’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6230:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_recvmsg’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6484:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sock->sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_sendmsg’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6537:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sock->sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_poll’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6673:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sock->sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘add_sock_to_cluster_list’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:424:58: note: in definition of macro ‘ring_sk_datatype’
 #define ring_sk_datatype(__sk) ((struct pf_ring_socket *)__sk)
                                                          ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6776:20: note: in expansion of macro ‘ring_sk’
   ring_sk_datatype(ring_sk(sock))->cluster_id = el->cluster.cluster_id;
                    ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘set_master_ring’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6866:11: note: in expansion of macro ‘ring_sk’
     pfr = ring_sk(sk);
           ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_setsockopt’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:7504:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sock->sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_getsockopt’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:8401:32: note: in expansion of macro ‘ring_sk’
   struct pf_ring_socket *pfr = ring_sk(sock->sk);
                                ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: At top level:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9114:3: warning: initialization from incompatible pointer type [enabled by default]
   .recvmsg = ring_recvmsg,
   ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9114:3: warning: (near initialization for ‘ring_ops.recvmsg’) [enabled by default]
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9115:3: warning: initialization from incompatible pointer type [enabled by default]
   .sendmsg = ring_sendmsg,
   ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9115:3: warning: (near initialization for ‘ring_ops.sendmsg’) [enabled by default]
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘remove_device_from_ring_list’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9180:8: note: in expansion of macro ‘ring_sk’
  pfr = ring_sk(sk);
        ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘pf_ring_inject_packet_to_ring’:
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’
 #define ring_sk(__sk) ((__sk)->sk_protinfo)
                              ^
/var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9307:13: note: in expansion of macro ‘ring_sk’
       pfr = ring_sk( sk);
             ^
make[2]: ** [/var/lib/dkms/pfring/6.1.1/build/pf_ring.o] Erro 1
make[1]: ** [_module_/var/lib/dkms/pfring/6.1.1/build] Erro 2
make[1]: Saindo do diretório `/usr/src/kernels/4.2.3-1.el7.elrepo.x86_64'
make: ** [all] Erro 2
cardigliano commented 9 years ago

Hi Leonardo pf_ring is not yet supported on kernel 4.x.

Alfredo

On 06 Oct 2015, at 20:11, Leonardo Amaral notifications@github.com wrote:

Im getting the following error installing in CentOS 7 + kernel 4.2.3-elrepo:

DKMS make.log for pfring-6.1.1 for kernel 4.2.3-1.el7.elrepo.x86_64 (x86_64) Ter Out 6 15:05:57 BRT 2015 \ 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/4.2.3-1.el7.elrepo.x86_64/build SUBDIRS=/var/lib/dkms/pfring/6.1.1/build EXTRA_CFLAGS='-I/var/lib/dkms/pfring/6.1.1/build -DGIT_REV="\"dev:f3689fc0b1c6fb29827d2cb35ba710ec21e114ea\""' modules make[1]: Entrando no diretório `/usr/src/kernels/4.2.3-1.el7.elrepo.x86_64' CC [M] /var/lib/dkms/pfring/6.1.1/build/pf_ring.o /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_sock_destruct’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:945:9: note: in expansion of macro ‘ring_sk’ pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_alloc_mem’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:1730:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_insert’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:1827:34: note: in expansion of macro ‘ring_sk’ pfr = (struct pf_ring_socket *)ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_remove’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:1847:42: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr_to_delete = ring_sk(sk_to_delete); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:1860:11: note: in expansion of macro ‘ring_sk’ pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘unregister_plugin’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4282:13: note: in expansion of macro ‘ring_sk’ pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘skb_ring_handler’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4607:13: note: in expansion of macro ‘ring_sk’ pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4697:14: note: in expansion of macro ‘ring_sk’ pfr = ring_sk(skElement); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_create’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4885:3: error: too few arguments to function ‘sk_alloc’ sk = sk_alloc(net, PF_INET, GFP_KERNEL, &ring_proto); ^ In file included from include/linux/tcp.h:22:0, from include/linux/ipv6.h:69, from /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:93: include/net/sock.h:1515:14: note: declared here struct sock sk_alloc(struct net net, int family, gfp_t priority, ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4898:3: note: in expansion of macro ‘ring_sk’ ring_sk(sk) = ring_sk_datatype(kmalloc(sizeof(*pfr), GFP_KERNEL)); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4900:14: note: in expansion of macro ‘ring_sk’ if(!(pfr = ring_sk(sk))) ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:4944:9: note: in expansion of macro ‘ring_sk’ kfree(ring_sk(sk)); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_release’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:5840:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:5970:3: note: in expansion of macro ‘ring_sk’ ring_sk(sk) = NULL; ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘packet_ring_bind’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6030:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_mmap’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6230:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_recvmsg’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6484:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sock->sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_sendmsg’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6537:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sock->sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_poll’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6673:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sock->sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘add_sock_to_cluster_list’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:424:58: note: in definition of macro ‘ring_sk_datatype’

    define ring_sk_datatype(sk) ((struct pf_ring_socket *)sk)

                                                      ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6776:20: note: in expansion of macro ‘ring_sk’ ring_sk_datatype(ring_sk(sock))->cluster_id = el->cluster.cluster_id; ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘set_master_ring’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:6866:11: note: in expansion of macro ‘ring_sk’ pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_setsockopt’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:7504:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sock->sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘ring_getsockopt’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:8401:32: note: in expansion of macro ‘ring_sk’ struct pf_ring_socket *pfr = ring_sk(sock->sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: At top level: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9114:3: warning: initialization from incompatible pointer type [enabled by default] .recvmsg = ring_recvmsg, ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9114:3: warning: (near initialization for ‘ring_ops.recvmsg’) [enabled by default] /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9115:3: warning: initialization from incompatible pointer type [enabled by default] .sendmsg = ring_sendmsg, ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9115:3: warning: (near initialization for ‘ring_ops.sendmsg’) [enabled by default] /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘remove_device_from_ring_list’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9180:8: note: in expansion of macro ‘ring_sk’ pfr = ring_sk(sk); ^ /var/lib/dkms/pfring/6.1.1/build/pf_ring.c: In function ‘pf_ring_inject_packet_to_ring’: /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:425:30: error: ‘struct sock’ has no member named ‘sk_protinfo’

    define ring_sk(sk) ((sk)->sk_protinfo)

                          ^

    /var/lib/dkms/pfring/6.1.1/build/pf_ring.c:9307:13: note: in expansion of macro ‘ring_sk’ pfr = ring_sk( sk); ^ make[2]: [/var/lib/dkms/pfring/6.1.1/build/pf_ring.o] Erro 1 make[1]: [module/var/lib/dkms/pfring/6.1.1/build] Erro 2 make[1]: Saindo do diretório`/usr/src/kernels/4.2.3-1.el7.elrepo.x86_64' make: \ [all] Erro 2 — Reply to this email directly or view it on GitHub https://github.com/ntop/PF_RING/issues/44.

kolach commented 9 years ago

Hi Alfredo! What are the plans of ntop team to support it?

Thanks, Nick

cardigliano commented 9 years ago

Hi Nick we usually support latest ubuntu 12/14 lts and centos 6/7, this is what we have in our lab, we will support kernel 4.x ASAP.

Alfredo

On 12 Oct 2015, at 03:09, Nick Chistyakov notifications@github.com wrote:

Hi Alfredo! What are the plans of ntop team to support it?

Thanks, Nick

— Reply to this email directly or view it on GitHub https://github.com/ntop/PF_RING/issues/44#issuecomment-147268520.

kolach commented 9 years ago

good to know, thanks!

leleobhz commented 9 years ago

I suggest support http://elrepo.org/tiki/kernel-ml and http://elrepo.org/tiki/kernel-lt at least.

cardigliano commented 9 years ago

Kernel 4.x should be supported now, please test latest code and let me know.

kolach commented 9 years ago

Many thanks for such a fast response. I do not have (__sk)->sk_protinfo type of error any more. Though I have this one:

nick@nuc:~/Projects/ntop/PF_RING$ make
cd kernel; make
make[1]: Entering directory '/home/nick/Projects/ntop/PF_RING/kernel'
make -C /lib/modules/4.2.0-16-generic/build SUBDIRS=/home/nick/Projects/ntop/PF_RING/kernel EXTRA_CFLAGS='-I/home/nick/Projects/ntop/PF_RING/kernel -DGIT_REV="\"dev:8c0a5ca1fca757e1cb0d0d3a67b75201bdbf3ad4\""' modules
make[2]: Entering directory '/usr/src/linux-headers-4.2.0-16-generic'
  CC [M]  /home/nick/Projects/ntop/PF_RING/kernel/pf_ring.o
/home/nick/Projects/ntop/PF_RING/kernel/pf_ring.c:172:3: error: initializer element is not constant
   (rwlock_t)__RW_LOCK_UNLOCKED(virtual_filtering_lock)
   ^
/home/nick/Projects/ntop/PF_RING/kernel/pf_ring.c:182:3: error: initializer element is not constant
   (rwlock_t)__RW_LOCK_UNLOCKED(virtual_filtering_lock)
   ^
/home/nick/Projects/ntop/PF_RING/kernel/pf_ring.c:213:3: error: initializer element is not constant
   (rwlock_t)__RW_LOCK_UNLOCKED(cluster_fragments_lock)
   ^
/home/nick/Projects/ntop/PF_RING/kernel/pf_ring.c:232:3: error: initializer element is not constant
   (rwlock_t) __RW_LOCK_UNLOCKED(dna_cluster_lock)
   ^
/home/nick/Projects/ntop/PF_RING/kernel/pf_ring.c:242:3: error: initializer element is not constant
   (rwlock_t) __RW_LOCK_UNLOCKED(cluster_referee_lock)
   ^
/home/nick/Projects/ntop/PF_RING/kernel/pf_ring.c:250:3: error: initializer element is not constant
   (rwlock_t)__RW_LOCK_UNLOCKED(ring_proc_lock)
   ^
scripts/Makefile.build:264: recipe for target '/home/nick/Projects/ntop/PF_RING/kernel/pf_ring.o' failed
make[3]: *** [/home/nick/Projects/ntop/PF_RING/kernel/pf_ring.o] Error 1
Makefile:1398: recipe for target '_module_/home/nick/Projects/ntop/PF_RING/kernel' failed
make[2]: *** [_module_/home/nick/Projects/ntop/PF_RING/kernel] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.2.0-16-generic'
Makefile:40: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/nick/Projects/ntop/PF_RING/kernel'
Makefile:2: recipe for target 'all' failed
make: *** [all] Error 2
cardigliano commented 9 years ago

I patched pf_ring for 4.2.3 EL7, it seems you are using ubuntu, correct? Version? How did you install kernel 4.2?

kolach commented 9 years ago

I'm using upcoming ubuntu 15.10 // actually kubuntu if it matters

cardigliano commented 9 years ago

Fixed, please check latest code on git.

kolach commented 9 years ago

I did. And kernel module is compiled fine now. But I have other error on compiling drivers. That's the error that I get when I just run make in PF_RING root:

....
make[3]: Leaving directory '/home/nick/Projects/PF_RING/drivers/DNA/igb-5.3.2.2-DNA/src'
cd ixgbe-4.1.2-DNA/src; make
make[3]: Entering directory '/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src'
make -C /lib/modules/4.2.0-16-generic/build SUBDIRS=/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src modules
make[4]: Entering directory '/usr/src/linux-headers-4.2.0-16-generic'
  CC [M]  /home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.o
/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c: In function 'ixgbe_ndo_bridge_getlink':
/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:9921:9: error: too few arguments to function 'ndo_dflt_bridge_getlink'
  return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0);
         ^
In file included from include/net/dst.h:13:0,
                 from include/net/sock.h:67,
                 from include/linux/tcp.h:22,
                 from /home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:37:
include/linux/rtnetlink.h:115:12: note: declared here
 extern int ndo_dflt_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
            ^
/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c: At top level:
/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:10018:24: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
  .ndo_bridge_getlink = ixgbe_ndo_bridge_getlink,
                        ^
/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:10018:24: note: (near initialization for 'ixgbe_netdev_ops.ndo_bridge_getlink')
/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c: In function 'ixgbe_ndo_bridge_getlink':
/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:9925:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
scripts/Makefile.build:258: recipe for target '/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.o' failed
make[5]: *** [/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.o] Error 1
Makefile:1398: recipe for target '_module_/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src' failed
make[4]: *** [_module_/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src] Error 2
make[4]: Leaving directory '/usr/src/linux-headers-4.2.0-16-generic'
Makefile:321: recipe for target 'default' failed
make[3]: *** [default] Error 2
make[3]: Leaving directory '/home/nick/Projects/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src'
Makefile:25: recipe for target 'ixgbe' failed
make[2]: *** [ixgbe] Error 2
make[2]: Leaving directory '/home/nick/Projects/PF_RING/drivers/DNA'
Makefile:7: recipe for target 'dna' failed
make[1]: *** [dna] Error 2
make[1]: Leaving directory '/home/nick/Projects/PF_RING/drivers'
Makefile:2: recipe for target 'all' failed
make: *** [all] Error 2

Actually the driver that I need is ZC Intel e1000e. But it is also failed to compile with errors:

nick@nuc:~/Projects/PF_RING/drivers/ZC$ make
cd intel; make
make[1]: Entering directory '/home/nick/Projects/PF_RING/drivers/ZC/intel'
cd e1000e/e1000e-3.2.4.2-zc/src; make
make[2]: Entering directory '/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src'
make -C /lib/modules/4.2.0-16-generic/build SUBDIRS=/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src modules
make[3]: Entering directory '/usr/src/linux-headers-4.2.0-16-generic'
  CC [M]  /home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.o
In file included from /home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c:49:0:
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/e1000.h:404:22: error: field 'cc' has incomplete type
  struct cyclecounter cc;
                      ^
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/e1000.h:405:21: error: field 'tc' has incomplete type
  struct timecounter tc;
                     ^
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c: In function 'e1000e_systim_to_hwtstamp':
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c:508:7: error: implicit declaration of function 'timecounter_cyc2time' [-Werror=implicit-function-declaration]
  ns = timecounter_cyc2time(&adapter->tc, systim);
       ^
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c: In function 'e1000e_config_hwtstamp':
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c:4344:2: error: implicit declaration of function 'timecounter_init' [-Werror=implicit-function-declaration]
  timecounter_init(&adapter->tc, &adapter->cc,
  ^
In file included from include/linux/list.h:8:0,
                 from include/linux/module.h:9,
                 from /home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c:25:
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c: In function 'e1000e_cyclecounter_read':
include/linux/kernel.h:811:48: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
  const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                ^
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c:5243:34: note: in expansion of macro 'container_of'
  struct e1000_adapter *adapter = container_of(cc, struct e1000_adapter,
                                  ^
include/linux/kernel.h:811:48: note: (near initialization for 'adapter')
  const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                ^
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c:5243:34: note: in expansion of macro 'container_of'
  struct e1000_adapter *adapter = container_of(cc, struct e1000_adapter,
                                  ^
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c: In function 'e1000_sw_init':
/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.c:5327:22: error: implicit declaration of function 'CYCLECOUNTER_MASK' [-Werror=implicit-function-declaration]
   adapter->cc.mask = CYCLECOUNTER_MASK(64);
                      ^
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target '/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.o' failed
make[4]: *** [/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src/netdev.o] Error 1
Makefile:1398: recipe for target '_module_/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src' failed
make[3]: *** [_module_/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src] Error 2
make[3]: Leaving directory '/usr/src/linux-headers-4.2.0-16-generic'
Makefile:249: recipe for target 'default' failed
make[2]: *** [default] Error 2
make[2]: Leaving directory '/home/nick/Projects/PF_RING/drivers/ZC/intel/e1000e/e1000e-3.2.4.2-zc/src'
Makefile:9: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/nick/Projects/PF_RING/drivers/ZC/intel'
Makefile:3: recipe for target 'all' failed
make: *** [all] Error 2

Many thanks for your fixes! If I can somehow help just tell me.

cardigliano commented 9 years ago

We are working for porting drivers to kernel 4.x, stay tuned.

leleobhz commented 9 years ago

This kernel is elrepo-kernelmt.

Ill waiting.

teokal commented 8 years ago

Might we have any news about the DNA drivers with kernel 4.x ? Has this issue been resolved? I have problem installing DNA driver only in this kernel. On 3.19 I had no problem.

uname -a : Linux teopc 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Mon May 23 10:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Network Card: 82599ES 10-Gigabit SFI/SFP+ Network Connection

I tried cd ~/PF_RING && make and I am getting the following error:

... (everything is okay) ...
make[3]: Leaving directory `/home/teo/PF_RING/drivers/DNA/igb-5.3.2.2-DNA/src'
cd ixgbe-4.1.2-DNA/src; make
make[3]: Entering directory `/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src'
make -C /lib/modules/4.2.0-27-generic/build SUBDIRS=/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src modules
make[4]: Entering directory `/usr/src/linux-headers-4.2.0-27-generic'
  CC [M]  /home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.o
/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c: In function ‘ixgbe_ndo_bridge_getlink’:
/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:9921:2: error: too few arguments to function ‘ndo_dflt_bridge_getlink’
  return ndo_dflt_bridge_getlink(skb, pid, seq, dev, mode, 0, 0);
  ^
In file included from include/net/dst.h:13:0,
                 from include/net/sock.h:67,
                 from include/linux/tcp.h:22,
                 from /home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:37:
include/linux/rtnetlink.h:115:12: note: declared here
 extern int ndo_dflt_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
            ^
/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c: At top level:
/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:10018:2: warning: initialization from incompatible pointer type [enabled by default]
  .ndo_bridge_getlink = ixgbe_ndo_bridge_getlink,
  ^
/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:10018:2: warning: (near initialization for ‘ixgbe_netdev_ops.ndo_bridge_getlink’) [enabled by default]
/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c: In function ‘ixgbe_ndo_bridge_getlink’:
/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.c:9925:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make[5]: *** [/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src/ixgbe_main.o] Error 1
make[4]: *** [_module_/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src] Error 2
make[4]: Leaving directory `/usr/src/linux-headers-4.2.0-27-generic'
make[3]: *** [default] Error 2
make[3]: Leaving directory `/home/teo/PF_RING/drivers/DNA/ixgbe-4.1.2-DNA/src'
... (Leaving some more dirs) ...

Any help or update is much appreciated :)

cardigliano commented 8 years ago

DNA is EOL, any reason you are not using ZC drivers?

teokal commented 8 years ago

We were using ZC for some time, but we had a lot of dropped packets 30-55%. Possibly, it was due to bad management of hardware resources (more than enough but not with optimized settings). Changing to DNA drivers and without changing any other setting dropped this to 0.02-0.5%. Just that so far!

cardigliano commented 8 years ago

I think this is due to some misconfiguration (DNA and ZC have similar performance, they use the very same kernel-bypass technology)

teokal commented 8 years ago

It might be a little bit off-topic and general question but it would give me some guidance as to what to focus.

cardigliano commented 8 years ago

I would go with 2 (ZC)