From owner-freebsd-alpha Wed Aug 1 10:49:29 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from hirogen.kabelfoon.nl (hirogen.kabelfoon.nl [62.45.45.69]) by hub.freebsd.org (Postfix) with ESMTP id A486E37B401; Wed, 1 Aug 2001 10:49:20 -0700 (PDT) (envelope-from pblok@inter.NL.net) Received: from ntpc (kf-pij-tg01-426.dial.kabelfoon.nl [62.45.89.172]) by hirogen.kabelfoon.nl (Postfix) with SMTP id 353B77C3D; Wed, 1 Aug 2001 19:49:15 +0200 (CEST) Reply-To: From: "Peter Blok" To: "'Thomas Pornin'" , Cc: Subject: RE: PPPoE + Alpha + 32/64 bits Date: Wed, 1 Aug 2001 19:45:09 +0200 Message-ID: <000001c11ab1$b5b92d70$8a02a8c0@ntpc> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook CWS, Build 9.0.2416 (9.0.2911.0) In-Reply-To: <20010801173624.A13674@bolet.ens.fr> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Importance: Normal Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org What did you patch in the mpd daemon. I found a lot endian issues with it, but due to work pressure I didn't finish it. -----Original Message----- From: owner-freebsd-alpha@FreeBSD.ORG [mailto:owner-freebsd-alpha@FreeBSD.ORG]On Behalf Of Thomas Pornin Sent: Wednesday, August 01, 2001 17:36 To: freebsd-net@freebsd.org Cc: freebsd-alpha@freebsd.org Subject: PPPoE + Alpha + 32/64 bits Hello, I recently connected my FreeBSD/Alpha (4.3-RELEASE) to an ADSL link using an Alcatel Speed Touch Home modem. As is, it was not working; after some digging, I found that there is a bug either in the ng_pppoe support, or in the modem. The problem is in the pppoe_finduniq() function. In order to identify sessions, the PPPoE code sends a tag with the first packet it sends to the modem; this tag is in fact a 64-bit pointer to some data structure in kernel space. When a packet of type PADO_CODE or PADS_CODE is received, the tag is compared with known pointers. However, only 32 bits are present in the return tag. So, if the original pointer is 0xfffffc00003b3d00, the tag contains only 0x003b3d00, which are the first four bytes of data (in little-endian representation). If I modify the pppoe_finduniq() function to accept matches on these four bytes, the connection is established, and remains fully functionnal afterwards. Some details: The Alpha is little-endian, but the data in the packets is big-endian. If the original pointer is 0xfffffc00003b3d00, the rebuilt tag from the response packet is actually 0x003b3d0000000000. I do not know if the 8-bytes tag is sent correctly, or if the modem is buggy, or whatever. Machine configuration: AXPpci33 at 166 MHz, 32 MB ram ethernet PCI adapter RealTek 8029 10baseT (ed0) modem Alcatel Speed Touch Home (ethernet) FreeBSD 4.3-RELEASE (with a small patch to enable ed0) Feel free to ask for any detail. --Thomas Pornin To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message