<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">I have PPP nearly working between RTEMS/LEON3 and Linux. <o:p>
</o:p></p>
<p class="MsoNormal">The two sides negotiate the PPP link and the PPP link seems to stay up. The Linux side sends occasional EchoReq packets to RTEMS, which it replies to with EchoRep.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In my example, the RTEMS/LEON3 IP is 192.168.3.1 and the Linux peer IP is 192.168.3.2. The RTEMS/LEON3 board does not have any other network interfaces, other than the default loopback interface.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">When the Linux side sends a UDP packet to 192.168.3.1:5005, the code I wrote in RTEMS to listen on port 5005 receives the packet. When I try to do the opposite, the RTEMS side sends a UDP packet to 192.168.3.2:5005, but it does not seem
 to get to the Linux UDP receive code.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am going by this example for my network configuration:<o:p></o:p></p>
<p class="MsoNormal"><a href="https://git.rtems.org/rtems/tree/testsuites/samples/pppd/netconfig.h?h=4.11">https://git.rtems.org/rtems/tree/testsuites/samples/pppd/netconfig.h?h=4.11</a><o:p></o:p></p>
<p class="MsoNormal">In that configuration, the PPP “rtems_bsdnet_ifconfig” structure does not have the IP address, or netmask defined. Should I specify these, or does the PPP initialization do that for me?<o:p></o:p></p>
<p class="MsoNormal">Also, should I make sure I have a gateway defined in “rtems_bsdnet_config”? If so, what should that be ( assuming no other network interfaces exist other than the PPP connection to the Linux peer )?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Any other clues? I suspect that it’s just a fundamental configuration issue at this point.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<br>
Alan<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">devel <devel-bounces@rtems.org> on behalf of Alan Cudmore <alan.p.cudmore@nasa.gov><br>
<b>Date: </b>Thursday, March 7, 2019 at 9:55 AM<br>
<b>To: </b>Gedare Bloom <gedare@rtems.org><br>
<b>Cc: </b>"rtems-devel@rtems.org" <devel@rtems.org><br>
<b>Subject: </b>Re: pppd unaligned trap on Sparc/LEON3<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">Hi Gedare,<o:p></o:p></p>
<p class="MsoNormal">I have a fix for the GetMask function. I will have to open a ticket and submit a patch.
<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">I think the VxWorks BSP for the LEON processors provides a trap-and-emulate solution. While I hope that we can eliminate all possible unaligned traps, this would probably be worth adding to the Sparc/LEON BSPs as a safety net. Do any other
 architectures have this characteristic? RISC-V perhaps? <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Thanks,<br>
Alan<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">Gedare Bloom <gedare@rtems.org><br>
<b>Date: </b>Thursday, March 7, 2019 at 9:34 AM<br>
<b>To: </b>Alan Cudmore <alan.p.cudmore@nasa.gov><br>
<b>Cc: </b>"rtems-devel@rtems.org" <devel@rtems.org><br>
<b>Subject: </b>Re: pppd unaligned trap on Sparc/LEON3</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">Hi Alan,<o:p></o:p></p>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">On Mon, Mar 4, 2019 at 2:34 PM Cudmore, Alan P. (GSFC-5820) <<a href="mailto:alan.p.cudmore@nasa.gov">alan.p.cudmore@nasa.gov</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I’m trying to get PPP working on SPARC/LEON3. I’m currently using RTEMS 4.11, but plan on switching to 5.x soon.
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">While handshaking with a Linux PPP client, the LEON3 gets an unaligned memory trap in the GetMask function:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__git.rtems.org_rtems_tree_cpukit_pppd_sys-2Drtems.c-3Fh-3D4.11-23n1299&d=DwMFaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=mW-jVVDIxBn4bZU1jogCo9FDuDuPszsoVj1mqBvCXzw&m=a-5Jn4TUL71hPUF7ssGxSxyYDAOvUQ_1D8wccpyZGSw&s=YF0LtbDNlIH1_t9mK3JmmGTp0EfdlvBOfGCWLXC46PQ&e=" target="_blank">https://git.rtems.org/rtems/tree/cpukit/pppd/sys-rtems.c?h=4.11#n1299</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">The second network interface returned by the ioctl(SIOGIFCONF) call is not aligned on a 4 byte boundary, so the pointer de-reference causes the trap.
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">It looks like this was referenced in ticket 1401:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__devel.rtems.org_ticket_1401&d=DwMFaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=mW-jVVDIxBn4bZU1jogCo9FDuDuPszsoVj1mqBvCXzw&m=a-5Jn4TUL71hPUF7ssGxSxyYDAOvUQ_1D8wccpyZGSw&s=M-C8KcV0uNFqCEid52etDmlQp2za5jDBKE0EGR-FjLM&e=" target="_blank">https://devel.rtems.org/ticket/1401</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#FFFFDD">NOTE: the caller, when unpacking the</span><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black"><br>
<span style="background:#FFFFDD">sequence of ifreqs is likely to encounter</span><br>
<span style="background:#FFFFDD">the same problem (see separate bug report</span><br>
<span style="background:#FFFFDD">filed for pppd)</span></span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I could not find that ticket for pppd. Did anyone try to create a fix for this?<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Is the best approach to try to fix the pppd GetMask function to avoid unaligned accesses?<o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Yes, the best approach would seem to be coercing the value into an aligned reference and then extracting the bits you want to get.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">A general solution could also be to implement trap-and-emulate for unaligned data accesses. I started writing code like this (about 5 years ago!), it is about 20-30 hours of coding/testing to be confident about the result.  Existing code
 is available in netbsd for deriving the exception handler, so most of the effort is to extract, simplify, refactor, and test that code in rtems-sparc.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Gedare<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,<br>
Alan<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.rtems.org_mailman_listinfo_devel&d=DwMFaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=mW-jVVDIxBn4bZU1jogCo9FDuDuPszsoVj1mqBvCXzw&m=a-5Jn4TUL71hPUF7ssGxSxyYDAOvUQ_1D8wccpyZGSw&s=IZvWcuM0TV7PLsirOiYGN1uWKG5co9mZWM21xvPfJt8&e=" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</body>
</html>