<div dir="ltr">Hi, maybe it&#39;s a naive question. But I am confused here.<div><br></div><div>For the options field of an IP header, as for the data in this field, according to document and the code in the method of &quot;ip_options_compile&quot;, the first byte is  the options type data and the second byte is the length of the option. But I traced back the method of &quot;ip_options_get_from_user&quot;, there is no place that assign these two values to the __data field. </div>
<div><br></div><div>I checked some example of socket API &quot;<span style="color:rgb(0,0,0)">setsockopt&quot;, it also just converts the target options data pointer into a char * pointer and passes down to &quot;</span>ip_options_get_from_user<span style="color:rgb(0,0,0)">&quot;, still it doesn&#39;t set these two values.</span></div>
<div><span style="color:rgb(0,0,0)"><br></span></div><div><span style="color:rgb(0,0,0)">Can anyone help me on this? Because I am trying to add my own options to IP header at the IP layer for some experiment purposes.</span></div>
<div><span style="color:rgb(0,0,0)"><br></span></div><div><span style="color:rgb(0,0,0)"><br></span></div><div><pre style="color:rgb(0,0,0)">struct linger linger = { 0 };
linger.l_onoff = 1;
linger.l_linger = 30;
status = setsockopt(serverSocket,
SOL_SOCKET, SO_LINGER,
(const char *) &amp;linger,
sizeof(linger));</pre></div></div>