All of lore.kernel.org
 help / color / mirror / Atom feed
* ip_conntrack_get
@ 2003-11-11 23:06 pablo neira
  2003-11-11 23:55 ` ip_conntrack_get Henrik Nordstrom
  0 siblings, 1 reply; 5+ messages in thread
From: pablo neira @ 2003-11-11 23:06 UTC (permalink / raw)
  To: netfilter-devel

Hi everyone,

I've been for almost two weeks trying to understand netfilter code, at this point 
I'm trying to understand conntrack table code.

I have a problem with how conntrack manages the ip_conntrack_info stuff.

>From ip_conntrack_core.c

398 <http://lxr.linux.no/source/net/ipv4/netfilter/ip_conntrack_core.c#L398> __ip_conntrack_get <http://lxr.linux.no/ident?i=__ip_conntrack_get>(struct nf_ct_info <http://lxr.linux.no/ident?i=nf_ct_info> *nfct, enum ip_conntrack_info <http://lxr.linux.no/ident?i=ip_conntrack_info> *ctinfo)
399 <http://lxr.linux.no/source/net/ipv4/netfilter/ip_conntrack_core.c#L399> {
400 <http://lxr.linux.no/source/net/ipv4/netfilter/ip_conntrack_core.c#L400>         struct ip_conntrack <http://lxr.linux.no/ident?i=ip_conntrack> *ct
401 <http://lxr.linux.no/source/net/ipv4/netfilter/ip_conntrack_core.c#L401>                 = (struct ip_conntrack <http://lxr.linux.no/ident?i=ip_conntrack> *)nfct->master <http://lxr.linux.no/ident?i=master>;

I don't understand that casting at the line 400th/401th.

This is the definition of the structure nf_ct_info:

>From skbuff.h

92 <http://lxr.linux.no/source/include/linux/skbuff.h#L92> struct nf_ct_info <http://lxr.linux.no/ident?i=nf_ct_info> {
93 <http://lxr.linux.no/source/include/linux/skbuff.h#L93>         struct nf_conntrack <http://lxr.linux.no/ident?i=nf_conntrack> *master <http://lxr.linux.no/ident?i=master>;
94 <http://lxr.linux.no/source/include/linux/skbuff.h#L94> };

And the definition of nf_conntrack is:

87 <http://lxr.linux.no/source/include/linux/skbuff.h#L87> struct nf_conntrack <http://lxr.linux.no/ident?i=nf_conntrack> {
88 <http://lxr.linux.no/source/include/linux/skbuff.h#L88>         atomic_t <http://lxr.linux.no/ident?i=atomic_t> use;
89 <http://lxr.linux.no/source/include/linux/skbuff.h#L89>         void (*destroy)(struct nf_conntrack <http://lxr.linux.no/ident?i=nf_conntrack> *);
90 <http://lxr.linux.no/source/include/linux/skbuff.h#L90> };

Actually nf_conntrack doesn't look like ip_conntrack structure anyway.

I also don't understand the way ctinfo is calculate. This stuff...

403 <http://lxr.linux.no/source/net/ipv4/netfilter/ip_conntrack_core.c#L403>         *//* ctinfo is the index of the nfct inside the conntrack *//*
404 <http://lxr.linux.no/source/net/ipv4/netfilter/ip_conntrack_core.c#L404>         *ctinfo = nfct - ct->infos;


Don't blame me if it's obvious for you, I'm just a guy trying to understand a really 
really nice piece of code. Thanks!

cheers,
Pablo

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-12-09  9:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-11 23:06 ip_conntrack_get pablo neira
2003-11-11 23:55 ` ip_conntrack_get Henrik Nordstrom
2003-12-09  3:58   ` ip_conntrack_get Jesse Peng
2003-12-09  8:51     ` ip_conntrack_get Henrik Nordstrom
2003-12-09  9:48       ` ip_conntrack_get Jesse Peng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.