All of lore.kernel.org
 help / color / mirror / Atom feed
From: linux lover <linux.lover2004@gmail.com>
To: kernelnewbies@nl.linux.org
Cc: netfilter-devel@lists.netfilter.org
Subject: Re: printing packet data
Date: Thu, 23 Dec 2004 08:19:28 +0530	[thread overview]
Message-ID: <72c6e37904122218495cb49348@mail.gmail.com> (raw)
In-Reply-To: <72c6e37904122118504466dd28@mail.gmail.com>

Hello Lukas,
            As you said i  use following printk with for loop and
included at hook_func1.
 for (i=0;i<5;i++)
    printk(KERN_DEBUG"Packet data is %02x\t",sb->data[i]);
But i am not getting any output in /var/log/messages. Where am i
wrong? I specified to print only 5 chars at start to check whether i
can get packet dump or not?
         What else should i include in module code i posted already
with above lines?
regards,
linux.lover

On Wed, 22 Dec 2004 08:20:42 +0530, linux lover
<linux.lover2004@gmail.com> wrote:
> Hi all,
> I want to print skb->data contents in kernel module using netfilter module at
> NF_HOOK NF_IP_LOCAL_OUT. How can i do that? I know how to write netfilter
> module like this one
> #define MODULE
> #define __KERNEL__
> 
>           #include <linux/module.h>
>           #include <linux/kernel.h>
>           #include <linux/skbuff.h>
>           #include <linux/ip.h>
>           #include <linux/netfilter.h>
>           #include <linux/netfilter_ipv4.h>
> 
>           static struct nf_hook_ops nfho1;
>           static unsigned char *packet_ip = "\x7f\x00\x00\x0b";
> 
>           unsigned int hook_func1(unsigned int hooknum,struct sk_buff **skb,
>                                  const struct net_device *in,
>                                  const struct net_device *out,
>                                  int (*okfn)(struct sk_buff *))
>           {
>               struct sk_buff *sb = *skb;
>               printk(KERN_DEBUG "calling hook_func at NF_IP_LOCAL_OUT\n");
>                 if (sb->nh.iph->saddr == *(unsigned int *)packet_ip)
>                  {
>  /*CODE REQUIRE TO BE INCLUDED HERE*/
>                   return NF_ACCEPT;
>           }
>                else
>                     return NF_ACCEPT;
> 
>           }
> 
> static int __init init(void)
>   {
>               nfho1.hook     = hook_func1;
>               nfho1.hooknum  = NF_IP_LOCAL_OUT;
>               nfho1.pf       = PF_INET;
>               nfho1.priority = NF_IP_PRI_FIRST;
>               nf_register_hook(&nfho1);
>               return 0;
>           }
> 
> static void __exit fini(void)
>           {
>               nf_unregister_hook(&nfho1);
>           }
> module_init(init);
> module_exit(fini);
> MODULE_LICENSE("GPL");
> 
> But how can i print those HEX codes in packet?
> regards,
> linux.lover
>

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/

      parent reply	other threads:[~2004-12-23  2:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-22  2:50 printing packet data linux lover
2004-12-22 13:54 ` Lukas Ruf
2004-12-23  2:49 ` linux lover [this message]

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=72c6e37904122218495cb49348@mail.gmail.com \
    --to=linux.lover2004@gmail.com \
    --cc=kernelnewbies@nl.linux.org \
    --cc=netfilter-devel@lists.netfilter.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 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.