ip_conntrack_pptp.ko needs unknown symbol __ip_conntrack_expect_find

Greg Scott GregScott at InfraSupportEtc.com
Tue Aug 30 14:23:59 CEST 2005


So does anyone have any ideas how to deal with this problem?  It seems
to be effecting lots of people and I've done everything I know how to
document and troubleshoot it.  

Here is a short summary of the problem:
> ip_conntrack_pptp.ko needs unknown symbol __ip_conntrack_expect_find

Details below

Thanks

- Greg Scott



-----Original Message-----
From: Greg Scott 
Sent: Sunday, August 28, 2005 6:07 PM
To: 'netfilter at lists.netfilter.org'
Subject: Problems building ip_conntrack_pptp with kernel 2.6.12.5; and
what does nfnetlink do?

Hi all - 

I am trying to build a 2.6.12.5 kernel with the patch-o-matic-20050825
pptp patches.  Make modules dies with this problem:

WARNING:
/lib/modules/2.6.12.5fw20/kernel/net/ipv4/netfilter/ip_conntrack_pptp.ko
needs unknown symbol __ip_conntrack_expect_find

I edited the EXTRAVERSION line in Makefile and I started with the
.config file that came with RedHat fc4 and 2.6.11-1.  I updated my copy
of .config with make oldconfig.  

This is how I put in the PPTP and other patch-o-matic patches:

cd /usr/src/patch-o-matic-ng-20050825

./runme --batch connlimit
##./runme --ip_contrack_count (Not in the .tar file) 
./runme --batch iprange 
./runme --batch mport (multiport match - deprecated soon) 
./runme --batch psd

./runme --batch comment
./runme --batch h323-conntrack-nat
##./runme --batch ipp2p (Not in the .tar file) ./runme --batch
pptp-conntrack-nat

I did some more detective work.  A google search led me to a suggestion
that the ip_conntrack__pptp patch now depends on another patch called
nfnetlink.  So I went to my copy of the expanded POM tree and looked.
Here is what I found:

[root at gsgv-fw nfnetlink]# pwd
/usr/src/patch-o-matic-ng-20050825/patchlets/nfnetlink
[root at gsgv-fw nfnetlink]# cd ..
[root at gsgv-fw patchlets]# grep -R ip_conntrack_expect_find * 
ctnetlink/linux-2.6.patch:+__ip_conntrack_expect_find(const struct
ip_conntrack_tuple *tuple) 
ctnetlink/linux-2.6.patch:+ip_conntrack_expect_find_get(const struct
ip_conntrack_tuple *tuple)
ctnetlink/linux-2.6.patch:+     i = __ip_conntrack_expect_find(tuple);
ctnetlink/linux-2.6.patch:+EXPORT_SYMBOL(__ip_conntrack_expect_find);
ctnetlink/linux-2.6.patch:+EXPORT_SYMBOL(ip_conntrack_expect_find_get);
ctnetlink/linux-2.6.patch:+__ip_conntrack_expect_find(const struct
ip_conntrack_tuple *tuple); 
ctnetlink/linux-2.6.patch:+ip_conntrack_expect_find_get(const struct
ip_conntrack_tuple *tuple);
ctnetlink/linux-2.6.11/net/ipv4/netfilter/ip_conntrack_netlink.c:
exp = ip_conntrack_expect_find_get(tuple);
ctnetlink/linux-2.6.11/net/ipv4/netfilter/ip_conntrack_netlink.c:
exp = ip_conntrack_expect_find_get(tuple);
ctnetlink/linux-2.6.11/net/ipv4/netfilter/ip_conntrack_netlink.c:
exp = __ip_conntrack_expect_find(tuple);
netfilter-docbook/linux-2.4.patch: ip_conntrack_expect_find_get(const
struct ip_conntrack_tuple *tuple)
netfilter-docbook/linux-2.6.patch: ip_conntrack_expect_find_get(const
struct ip_conntrack_tuple *tuple)
nfnetlink-ctnetlink-0.13/linux-2.6.patch:+      exp =
ip_conntrack_expect_find_get(tuple);
nfnetlink-ctnetlink-0.13/linux-2.6.patch:+      exp =
ip_conntrack_expect_find_get(tuple);
nfnetlink-ctnetlink-0.13/linux.patch: ip_conntrack_expect_find_get(const
struct ip_conntrack_tuple *tuple)
nfnetlink-ctnetlink-0.13/linux.patch:
EXPORT_SYMBOL_GPL(ip_conntrack_expect_find_get);
nfnetlink-ctnetlink-0.13/linux/net/ipv4/netfilter/nfnetlink_conntrack.c:
exp = ip_conntrack_expect_find_get(tuple);
nfnetlink-ctnetlink-0.13/linux/net/ipv4/netfilter/nfnetlink_conntrack.c:
exp = ip_conntrack_expect_find_get(tuple);
pptp-conntrack-nat/linux-2.6.11/net/ipv4/netfilter/ip_conntrack_pptp.c:
exp = __ip_conntrack_expect_find(t);
[root at gsgv-fw patchlets]# 

Based on the above, it looks like ctnetlink defines and exports the
missing symbol.  A look at the info for ctnetlink tells me it depends on
nfnetlink.  I see two, maybe three choices for nfnetlink:  These are,
nfnetlink, nfnetlink-ctnetlink-0.13, and nfnetlink_queue.

The info for nfnetliink-ctnetlink-0.13 says this one is deprecated.
Although recursive grep above shows that nfnetlink-ctnetlink mentions
the missing symbol, its deffinitions may be obsolete.  

The info for nfnetlink_queue says it depends on nfnetlink. 

The info for nfnetlink only says it depends on a kernel >= 2.6.0.  And
the info for all these modules is maddening because it  does not tell me
what they do!

I decided to add nfnetlink and ctnetlink to the list of POM patches I
use and try another kernel build.  

The nfnetlink patch went in with no problems.  But ctnetlink gave me
this:

Testing ctnetlink... not applied
The ctnetlink patch:
   Author: Jay Schulist, Harald Welte, Patrick McHardy, et.al.
   Status: Stable

newfile: 4 files in our way, unable to apply ERROR (6 rejects out of 48
hunks)
-----------------------------------------------------------------
Do you want to apply this patch [N/y/t/f/a/r/b/w/q/?] n


I said no - the last thing I want is to put in a messed up patch!

So now I am stuck again.  

Is there some order in which I should apply these patches?  Am I
applying the correct patches?  How do we add the pptp patches these
days???

Thanks

- Greg Scott
  GregScott at InfraSupportEtc.com
  USA cell phone 1-651-260-1051






More information about the netfilter mailing list