public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Vishwas Raman <vishwas@eternal-systems.com>
To: linux-kernel@vger.kernel.org
Subject: Netfiltering - NF_IP_LOCAL_OUT - how it works???
Date: Thu, 14 Aug 2003 15:06:26 -0700	[thread overview]
Message-ID: <3F3C07E2.3000305@eternal-systems.com> (raw)

Hi,

I am working with the 2.4.20 kernel.

The module I am writing is supposed to intercept all outgoing packets 
passing between the TCP and IP layer. I was trying to use the 
netfiltering mechanism for that purpose.

While initializing the module, I register a NF_IP_LOCAL_OUT hook for the 
outgoing packet and change skb->dst->output to my_ip_output() instead of 
ip_output() in that hook function. After loading the module, I see 
control being transferred to my_ip_output() for all outgoing packets 
which in turn calls ip_output() and everything seems to work well.

The exit function of the module also unregisters the hook that I am using.

The problem is that after I unload the module, which in turn unregisters 
the hook, I have a kernel panic happening each time I use TCP.

The panic occurs at the following point, ip_build_and_send_pkt() in 
ip_output.c where it is trying to call

     NF_HOOK(PF_INET, NF_IP_LOCAL_OUT, skb, NULL, rt->u.dst.dev,
                     output_maybe_reroute);

I thought once the unregistering of the hook is done, it no longer looks 
for that hook function. I have no idea why it is failing. May be I am 
doing something grossly wrong with netfiltering. Anyone who is familiar 
with netfiltering and has registered and unregistered hooks before might 
be able to guide me regarding this.

Any help will be appreciated.

Thanks,

-Vishwas.


             reply	other threads:[~2003-08-14 22:06 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-14 22:06 Vishwas Raman [this message]
2003-08-21 13:49 ` Netfiltering - NF_IP_LOCAL_OUT - how it works??? Harald Welte
2003-08-21 16:44   ` Vishwas Raman
2003-09-16 18:50   ` Incremental update of TCP Checksum Vishwas Raman
2003-09-16 19:00     ` Valdis.Kletnieks
2003-09-16 20:32       ` Vishwas Raman
2003-09-16 20:47         ` Leo Mauro
2003-09-17  3:28         ` Raf D'Halleweyn
2003-09-17  4:43           ` David S. Miller
2003-09-17 13:20           ` Richard B. Johnson
2003-09-17 20:34             ` Jamie Lokier
2003-09-16 19:47     ` Richard B. Johnson
2003-09-16 20:21       ` Vishwas Raman
2003-09-16 20:34         ` Richard B. Johnson
2003-09-16 20:35         ` Jesper Juhl
2003-09-17  1:37           ` Lincoln Dale
2003-09-17  1:39             ` Jesper Juhl
2003-09-16 22:41         ` Jamie Lokier
2003-09-16 23:32           ` Vishwas Raman
2003-09-16 20:33     ` Patrick McHardy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F3C07E2.3000305@eternal-systems.com \
    --to=vishwas@eternal-systems.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox