<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>RAW Sockets - HDLC or Ethernet</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Anyone,</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Yet</FONT><FONT SIZE=2 FACE="Arial"> another mys</FONT><FONT SIZE=2 FACE="Arial">terious question, at least to me.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">I have written to simple utilities to send an</FONT><FONT SIZE=2 FACE="Arial">d</FONT><FONT SIZE=2 FACE="Arial"> receive a file</FONT> <FONT SIZE=2 FACE="Arial">/ data through a newl</FONT><FONT SIZE=2 FACE="Arial">y created</FONT><FONT SIZE=2 FACE="Arial"> driver, HDLC using an MPC8360E.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> </SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Though I doubt this question is</FONT> <FONT SIZE=2 FACE="Arial">limited to that specific HW.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">The main question is that</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">everything</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">I send though</FONT> <FONT SIZE=2 FACE="Arial">device</FONT> <FONT SIZE=2 FACE="Arial">HDLC</FONT><FONT SIZE=2 FACE="Arial">0 I can immediately read from HDLC0 even though logically there is no connection t</FONT><FONT SIZE=2 FACE="Arial">h</FONT><FONT SIZE=2 FACE="Arial">e</FONT><FONT SIZE=2 FACE="Arial">r</FONT><FONT SIZE=2 FACE="Arial">e</FONT><FONT SIZE=2 FACE="Arial">.</FONT><FONT SIZE=2 FACE="Arial"> I</FONT><FONT SIZE=2 FACE="Arial">t as if the kernel is</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">immediately</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">allowing m</FONT><FONT SIZE=2 FACE="Arial">e</FONT><FONT SIZE=2 FACE="Arial"> to read</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">from the</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">same device, what a</FONT> <FONT SIZE=2 FACE="Arial">separate</FONT><FONT SIZE=2 FACE="Arial"> application</FONT><FONT SIZE=2 FACE="Arial"> just wrote.</FONT><FONT SIZE=2 FACE="Arial">???</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">HOW CAN THIS BE?</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Details</FONT><FONT SIZE=2 FACE="Arial">:</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">I have two applications:</FONT><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">s</FONT><FONT SIZE=2 FACE="Arial">end</FONT> <FONT SIZE=2 FACE="Arial">and</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">receive</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">&nbsp;</FONT> <FONT SIZE=2 FACE="Arial">(ps</FONT><FONT SIZE=2 FACE="Arial">e</FONT><FONT SIZE=2 FACE="Arial">u</FONT><FONT SIZE=2 FACE="Arial">do</FONT><FONT SIZE=2 FACE="Arial"> code as follows)</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Send opens a</FONT> <FONT SIZE=2 FACE="Arial">socket(</FONT><FONT SIZE=2 FACE="Arial">PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)</FONT><FONT SIZE=2 FACE="Arial">).</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">A</FONT><FONT SIZE=2 FACE="Arial">nd</FONT> <FONT SIZE=2 FACE="Arial">binds it (</FONT><FONT SIZE=2 FACE="Arial">AF_PACKET, ETH_P_HLDC,</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">if</FONT><FONT SIZE=2 FACE="Arial">_</FONT><FONT SIZE=2 FACE="Arial">index(hdlc0)</FONT><FONT SIZE=2 FACE="Arial">)</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">R</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">eceive</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">opens a socket</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">to the</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">same device </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">socket</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">(</FONT><FONT SIZE=2 FACE="Arial">PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">bind(AF_PACKET, ETH_P_ALL, if_index(hdlc0)</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Note they</FONT><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">a</FONT><FONT SIZE=2 FACE="Arial">re open</FONT><FONT SIZE=2 FACE="Arial">ing the same device.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">No</FONT><FONT SIZE=2 FACE="Arial">w</FONT><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">if I send anything</FONT><FONT SIZE=2 FACE="Arial"> through the send application, I immediately</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">receive</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">it via the</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">receive</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">application??</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Note, entirely separate processes!</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Note, there is NO hardware loopback, this should be a dead end</FONT><FONT SIZE=2 FACE="Arial">, and I should get nothing bac</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">k at least as far as HW is concerned.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">What am I missing, that</FONT> <FONT SIZE=2 FACE="Arial">causes</FONT><FONT SIZE=2 FACE="Arial"> all my</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">T</FONT><FONT SIZE=2 FACE="Arial">X</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"> data to show up</FONT><FONT SIZE=2 FACE="Arial"> immediately</FONT> <FONT SIZE=2 FACE="Arial">in th</FONT><FONT SIZE=2 FACE="Arial">e</FONT><FONT SIZE=2 FACE="Arial"> RX app?</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"> N</FONT><FONT SIZE=2 FACE="Arial">ote I have verified my HDLC drier is not</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">actually</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">receiving</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">anything, so is there something</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">in the</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">kernel that is bridging the TX / RX paths, or am I just missing the</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">function</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">of this?</FONT> <FONT SIZE=2 FACE="Arial">If so how can I use RAW mode, while not mixing this, or at least keeping them</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">separate</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Arial">in the</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial"></FONT> <FONT SIZE=2 FACE="Arial">applications?</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">-Russ</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

</BODY>
</HTML>