are u doin some sort of tunneling ?<br><br><div class="gmail_quote">On Fri, Apr 6, 2012 at 6:03 AM, Sri Ram Vemulpali <span dir="ltr">&lt;<a href="mailto:sri.ram.gmu06@gmail.com">sri.ram.gmu06@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Whenever you manipulate the packet before PRE_ROUTING point in the<br>
stack, the kernel will decide whether to route the packet to LOCAL or<br>
FORWARD. If you have pointer pointing to right IP header kernel will<br>
use it to route. You really do not have to write routing code.<br>
<br>
Also, when you say inner and outer header what do you mean by it. I<br>
did not encounter this.<br>
<br>
Thanks,<br>
Sri.<br>
<br>
On Thu, Apr 5, 2012 at 5:00 AM, SaNtosh kuLkarni<br>
&lt;<a href="mailto:santosh.yesoptus@gmail.com">santosh.yesoptus@gmail.com</a>&gt; wrote:<br>
&gt; i had a similar problem where in i was using SKB_PUSH to add extra<br>
&gt; header,,,, i used this... structure called flowi.... which can be used to<br>
&gt; define a sort of traffic class...based on some combination of fields<br>
&gt;<br>
&gt;<br>
&gt; iph-&gt;daddr =htonl(xxxxxx);<br>
&gt; {<br>
&gt; struct rtable *rt;<br>
&gt; struct flowi fl;<br>
&gt; memset(&amp;fl, 0x0, sizeof(struct flowi));<br>
&gt; fl.fl4_dst  = htonl(xxxxxxx);<br>
&gt; fl.proto = IPPROTO_TCP;<br>
&gt; if (!ip_route_output_key(&amp;init_net, &amp;rt, &amp;fl))<br>
&gt; {<br>
&gt; iph-&gt;saddr= htonl(ntohl(rt-&gt;rt_src));<br>
&gt;<br>
&gt; skb_dst_set(skb2, &amp;rt-&gt;u.dst);<br>
&gt;<br>
&gt; }<br>
&gt;<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Apr 2, 2012 at 2:12 PM, Kesava Srinivas &lt;<a href="mailto:vunnavafuture@gmail.com">vunnavafuture@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; HI Friends,<br>
&gt;&gt; Looking for a Confirmation on my analysis.<br>
&gt;&gt;<br>
&gt;&gt; Once after Capturing the Socket Buffer in PRE_ROUTING Hook; Manipulated<br>
&gt;&gt; the Socket Buffer by using the &quot;skb_pull&quot; Kernel Function. Using skb_pull;<br>
&gt;&gt; stripped 28 bytes (IP+UDP) which are the Part of outer UDP/IP Header. Now;<br>
&gt;&gt; My intention was to route the skb based on the Inner IP Header which is<br>
&gt;&gt; sitting after stripping 28 bytes. At the END; returned NF_ACCEPT.<br>
&gt;&gt;<br>
&gt;&gt; Even though; skb_pull worked Fine., Kernel&#39;s Stack is still looking in to<br>
&gt;&gt; Outer Header only for Routing the Packet.I expected ;Kernel will look the<br>
&gt;&gt; Inner Header (As data Pointer was incremented by 28 bytes via skb_pull) and<br>
&gt;&gt; Take decision based on the Inner one. But; that didn&#39;t  happened. It looks<br>
&gt;&gt; to me like; we need to always use NF_STOLEN &amp; should write our own code to<br>
&gt;&gt; route based on the INNER HEADER. Was my conclusion correct ??<br>
&gt;&gt;<br>
&gt;&gt; -Thanks in Advance,<br>
&gt;&gt; VKS<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
Regards,<br>
Sri.<br>
</font></span></blockquote></div><br>