You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to build the module on lts 6.1.96, x86_64
It works fine, but if you enable --enable-physdev, it throws an error:
$ ./configure --enable-physdev
Module version: 2.6-17-g0eb2092
Kernel version: 6.1.96-1-lts61 (uname)
Kernel sources: /lib/modules/6.1.96-1-lts61/build (found)
Checking for presence of include/linux/netfilter.h... Yes
netfilter.h uses CONFIG_NF_NAT_NEEDED... No
Checking for presence of include/linux/llist.h... Yes
Checking for presence of include/linux/grsecurity.h... No
Iptables binary version: 1.8.10 (nf_tables) (detected from /usr/bin/iptables)
pkg-config for version 1.8.10 (nf_tables) exists: No (reported: 1.8.10)
Check for working gcc: Yes (gcc)
Checking for presence of xtables.h... Yes
Searching for iptables-1.8.10 (nf_tables) sources..
! Can not find iptables source directory, you may try setting it with --ipt-src=
! This is not fatal error, yet. Will be just using default include dir.
Iptables include flags: none (default)
Iptables module path: /usr/lib/xtables (from libxtables.so, from binary)
Searching for net-snmp-config... Yes /usr/bin/net-snmp-config
Searching for net-snmp agent... No.
Assuming you don't want net-snmp agent support.
Otherwise install net-snmp (www.net-snmp.org)
Checking for DKMS... No. (It may be useful to install it.)
!
! DKMS is method of installing kernel modules, that will
! automatically recompile module after kernel upgrade.
Creating Makefile.. done.
If you need some options enabled run ./configure --help
Now run: make all install
$ make
./gen_compat_def > compat_def.h-
Test function xt_family linux/netfilter_ipv4/ip_tables.h declared
Test struct timeval linux/ktime.h undeclared
egrep: warning: egrep is obsolescent; using grep -E
Test struct proc_ops linux/proc_fs.h declared
Test function synchronize_sched linux/rcupdate.h undeclared
egrep: warning: egrep is obsolescent; using grep -E
Test function nf_bridge_info_get linux/netfilter_bridge.h declared
Test struct vlan_dev_priv linux/if_vlan.h undeclared
egrep: warning: egrep is obsolescent; using grep -E
Test function put_unaligned_be24 asm/unaligned.h declared
Test function totalram_pages linux/mm.h declared
Test symbol totalram_pages linux/mm.h declared
Test member nf_ct_event_notifier.ct_event net/netfilter/nf_conntrack_ecache.h declared
Test function register_sysctl_paths linux/sysctl.h declared
mv compat_def.h- compat_def.h
Compiling 2.6-17-g0eb2092 for kernel 6.1.96-1-lts61
make -C /lib/modules/6.1.96-1-lts61/build M=/home/solstice/prog/dvcs/ipt-netflow modules
CC [M] /home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.o
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c: In function 'netflow_target':
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5301:40: error: 'struct nf_bridge_info' has no member named 'physindev'; did you mean 'physinif'?
5301 | copy_dev(nf->i_ifphys, physindev, if_in);
| ^~~~~~~~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5295:73: note: in definition of macro 'copy_dev'
5295 | if (nf_bridge_info_get(skb) && nf_bridge_info_get(skb)->physdev) \
| ^~~~~~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5301:40: error: 'struct nf_bridge_info' has no member named 'physindev'; did you mean 'physinif'?
5301 | copy_dev(nf->i_ifphys, physindev, if_in);
| ^~~~~~~~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5291:30: note: in definition of macro 'resolve_snmp'
5291 | # define resolve_snmp(dev) ((dev)? (dev)->ifindex : -1)
| ^~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5301:17: note: in expansion of macro 'copy_dev'
5301 | copy_dev(nf->i_ifphys, physindev, if_in);
| ^~~~~~~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5301:40: error: 'struct nf_bridge_info' has no member named 'physindev'; did you mean 'physinif'?
5301 | copy_dev(nf->i_ifphys, physindev, if_in);
| ^~~~~~~~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5291:37: note: in definition of macro 'resolve_snmp'
5291 | # define resolve_snmp(dev) ((dev)? (dev)->ifindex : -1)
| ^~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5301:17: note: in expansion of macro 'copy_dev'
5301 | copy_dev(nf->i_ifphys, physindev, if_in);
| ^~~~~~~~
make[2]: *** [scripts/Makefile.build:250: /home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.o] Error 1
make[1]: *** [Makefile:2009: /home/solstice/prog/dvcs/ipt-netflow] Error 2
make: *** [Makefile:27: ipt_NETFLOW.ko] Error 2
Recent changes in kernel api have deprecated physindev
On master branch of linux kernel, this was done in commit 9874808878d9eed407e3977fd11fee49de1e1d86 "netfilter: bridge: replace physindev with physinif in nf_bridge_info"
same problem on archlinuxarm with kernel 6.6.35-1-rpi on rpi3 (armv7h, 32 bit)
If you enable all options, you get other error about printf format:
$ make
./gen_compat_def > compat_def.h-
Test function xt_family linux/netfilter_ipv4/ip_tables.h declared
Test struct timeval linux/ktime.h undeclared
egrep: warning: egrep is obsolescent; using grep -E
Test struct proc_ops linux/proc_fs.h declared
Test function synchronize_sched linux/rcupdate.h undeclared
egrep: warning: egrep is obsolescent; using grep -E
Test function nf_bridge_info_get linux/netfilter_bridge.h declared
Test struct vlan_dev_priv linux/if_vlan.h undeclared
egrep: warning: egrep is obsolescent; using grep -E
Test function put_unaligned_be24 asm/unaligned.h declared
Test function totalram_pages linux/mm.h declared
Test symbol totalram_pages linux/mm.h declared
Test member nf_ct_event_notifier.ct_event net/netfilter/nf_conntrack_ecache.h declared
Test function register_sysctl_paths linux/sysctl.h declared
mv compat_def.h- compat_def.h
Compiling 2.6-17-g0eb2092 for kernel 6.1.96-1-lts61
make -C /lib/modules/6.1.96-1-lts61/build M=/home/solstice/prog/dvcs/ipt-netflow modules
CC [M] /home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.o
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c: In function 'nf_seq_show':
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:762:60: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 's64' {aka 'long long int'} [-Wformat=]
762 | seq_printf(seq, " Flows selected %lu, discarded %lu.",
| ~~^
| |
| long unsigned int
| %llu
763 | atomic64_read(&flows_selected),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| s64 {aka long long int}
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:762:75: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 's64' {aka 'long long int'} [-Wformat=]
762 | seq_printf(seq, " Flows selected %lu, discarded %lu.",
| ~~^
| |
| long unsigned int
| %llu
763 | atomic64_read(&flows_selected),
764 | atomic64_read(&flows_observed) - atomic64_read(&flows_selected));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| s64 {aka long long int}
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:766:60: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 's64' {aka 'long long int'} [-Wformat=]
766 | seq_printf(seq, " Flows selected %lu.", atomic64_read(&flows_selected));
| ~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | s64 {aka long long int}
| long unsigned int
| %llu
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c: In function 'netflow_target':
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5301:40: error: 'struct nf_bridge_info' has no member named 'physindev'; did you mean 'physinif'?
5301 | copy_dev(nf->i_ifphys, physindev, if_in);
| ^~~~~~~~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5295:73: note: in definition of macro 'copy_dev'
5295 | if (nf_bridge_info_get(skb) && nf_bridge_info_get(skb)->physdev) \
| ^~~~~~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5301:40: error: 'struct nf_bridge_info' has no member named 'physindev'; did you mean 'physinif'?
5301 | copy_dev(nf->i_ifphys, physindev, if_in);
| ^~~~~~~~~
/home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.c:5296:69: note: in definition of macro 'copy_dev'
5296 | out = resolve_snmp(nf_bridge_info_get(skb)->physdev); \
| ^~~~~~~
make[2]: *** [scripts/Makefile.build:250: /home/solstice/prog/dvcs/ipt-netflow/ipt_NETFLOW.o] Error 1
make[1]: *** [Makefile:2009: /home/solstice/prog/dvcs/ipt-netflow] Error 2
make: *** [Makefile:27: ipt_NETFLOW.ko] Error 2
The text was updated successfully, but these errors were encountered:
I am trying to build the module on lts 6.1.96, x86_64
It works fine, but if you enable
--enable-physdev
, it throws an error:Recent changes in kernel api have deprecated physindev
On master branch of linux kernel, this was done in commit 9874808878d9eed407e3977fd11fee49de1e1d86 "netfilter: bridge: replace physindev with physinif in nf_bridge_info"
same problem on archlinuxarm with kernel 6.6.35-1-rpi on rpi3 (armv7h, 32 bit)
If you enable all options, you get other error about printf format:
The text was updated successfully, but these errors were encountered: