<p dir="ltr"><br>
On Oct 12, 2012 9:36 PM, &quot;Pietro Paolini&quot; &lt;<a href="mailto:P.Paolini@ext.adbglobal.com">P.Paolini@ext.adbglobal.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Hello,<br>
&gt;<br>
&gt; I am struggling with the byte order question on a x86_32 arch, I am doing some modifications on a program which actually works fine on a MIPS arch.<br>
&gt;<br>
&gt; I do a reading from a RAW socket in this way:<br>
&gt;<br>
&gt;         /* Configure socket */<br>
&gt;         if ((fd = socket(AF_INET, SOCK_RAW, IPPROTO_IGMP)) &lt; 0) {<br>
&gt;                 perror(&quot;Error on socket creation, exit&quot;);<br>
&gt;                 exit(1);<br>
&gt;         }<br>
&gt;           ....<br>
&gt;         if (setsockopt(fd, IPPROTO_IP, IP_PKTINFO, (void *)&amp;va, sizeof(va))) {<br>
&gt;                 perror(&quot;Error on setsockopt, exit&quot;);<br>
&gt;                 exit(1);<br>
&gt;         }<br>
&gt;         va = 0;<br>
&gt;         ....<br>
&gt;         ....<br>
&gt;         struct msghdr mhdr;<br>
&gt;         struct __in_pktinfo *pktinfo = NULL;<br>
&gt;         ...<br>
&gt;         ...<br>
&gt;         nrd = recvmsg(env-&gt;mrouter_fd, &amp;mhdr, 0);<br>
&gt;         ...<br>
&gt;         ip = (struct iphdr *)iov.iov_base;<br>
&gt;<br>
&gt; When I print the saddr (or daddr) of the received ip packet it is printed as host byte order instead of what I am expecting, the network byte order. I can just use the htonl() family functions for solve the problem but I would like understand if it is the normal behavior or if there is an issues on my code, or if the device driver of my NIC can influence the question.</p>

<p dir="ltr">I think you should use ntoh*() functions when accessing data rx&#39;ed from the n/w. Network byte order is big endian and your host is little endian, so you&#39;ll have convert it to the right order before accessing. You should use hton*() functions when tx&#39;ing data. CMIIW.</p>

<p dir="ltr">HTH,<br>
-mandeep</p>
<p dir="ltr">&gt; Many thanks,<br>
&gt; Pietro.<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">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a></p>