<div dir="ltr">Hi, <div>In the kernel, I added some customized options to the ip_options struct, and I send the ip packet with these option fields set. </div><div><br></div><div>After I receive the packet, I extract these options and try to remove them from the ip packet because I don&#39;t want these options be delivered to upper layer. </div>
<div><br></div><div>In the method ip_rcv_finish of the file ip_input.c, I added following code: </div><div><br></div><div><div><span class="" style="white-space:pre">/*********My code to process the options****/</span></div>
<div><span class="" style="white-space:pre">        process_my_options(skb);</span></div><div><span class="" style="white-space:pre">/*********My code to remove the options ****/<br></span></div><div><span style="white-space:pre">        </span>//skb_pull(skb, sizeof(struct iphdr) + 12);<br>
</div><div><span class="" style="white-space:pre">        </span>//skb_push(skb, sizeof(struct iphdr));</div><div><span class="" style="white-space:pre">        </span>//skb_reset_network_header(skb);</div><div><span class="" style="white-space:pre">        //</span>iph-&gt;ihl -= 3;</div>
<div><br></div><div><span style="white-space:pre">/*********Normal process of the ip packet.****/</span><br></div><div><span class="" style="white-space:pre">        </span>if (iph-&gt;ihl &gt; 5 &amp;&amp; ip_rcv_options(skb))</div>
<div><span class="" style="white-space:pre">                </span>goto drop;</div></div><div><br></div><div><br></div><div>The question is at how to remove the options. I tried some code but none of them works correctly. Can anybody give me some suggestion? Thanks.</div>
</div>