From owner-freebsd-alpha Wed Aug 1 11: 8: 9 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from InterJet.elischer.org (c421509-a.pinol1.sfba.home.com [24.7.86.9]) by hub.freebsd.org (Postfix) with ESMTP id 5848F37B401; Wed, 1 Aug 2001 11:07:59 -0700 (PDT) (envelope-from julian@elischer.org) Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id NAA41031; Wed, 1 Aug 2001 13:07:20 -0700 (PDT) Date: Wed, 1 Aug 2001 13:07:20 -0700 (PDT) From: Julian Elischer To: Peter Blok Cc: "'Thomas Pornin'" , freebsd-net@freebsd.org, freebsd-alpha@freebsd.org Subject: RE: PPPoE + Alpha + 32/64 bits In-Reply-To: <000001c11ab1$b5b92d70$8a02a8c0@ntpc> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 I think he was using ppp, not mpd. he's doing adsl/pppoe and not pptp. On Wed, 1 Aug 2001, Peter Blok wrote: > 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-net" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message