dev_queue_xmit is hanging on packet delivery (UNCLASSIFIED)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Classification: UNCLASSIFIED
Caveats: NONE

I'm not sure if this is the right group, but my question is about
reinjecting packets  after modification.   I wrote a simple kernel
module which took a skb, copied it with skb_clone(skb), called
dev_queue_xmit(cloned_skb) and returned NF_STOLEN.  

unsigned int process_outgoing( unsigned int hooknum,
				struct sk_buff **skb,
				...
)
struct sk_buff *skbuf = skb_copy(*skb, GFP_ATOMIC);
...
...
int rtval;

If(!skbuf)
	Return NF_ACCEPT;
...
...

rtval = dev_queue_xmit(skbuf);
if( rtval == NET_XMIT_SUCCESS)
	printk("Great packet queued\n");
else
{
	printk("packet not resent\n")
}

return NF_STOLEN;
}

After installing this module, my client/server application transmits the
first packet then hangs.  Nothing else is received on both ends.  If I
remove the module, packet will slowly begin to be received.  Admittedly
there is a lot that I don't understand about netfilters, but this makes
absolutely no sense to me.  I can't seem find a lot of documentation
about reinjecting packets.  I came across the function
nf_reinject(skb,nf_info,verdict)  but I have no idea where the middle
parameter is coming from or how this verdict is affecting the return
value of my process_outgoing function of my kernel mod.  Both
documentation lacks sample implementation.  Again, I simply want to
capture packets, modify them, then reinject them to their incoming or
outgoing queue.

I appreciate any help.

Thanx Richard  
Classification: UNCLASSIFIED
Caveats: NONE


--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux