From owner-freebsd-net Wed Aug 1 11: 8: 3 2001 Delivered-To: freebsd-net@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 0457337B403; Wed, 1 Aug 2001 11:07:54 -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 NAA40999; Wed, 1 Aug 2001 13:01:13 -0700 (PDT) Date: Wed, 1 Aug 2001 13:01:12 -0700 (PDT) From: Julian Elischer To: Thomas Pornin Cc: freebsd-net@freebsd.org, freebsd-alpha@freebsd.org Subject: Re: PPPoE + Alpha + 32/64 bits In-Reply-To: <20010801173624.A13674@bolet.ens.fr> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org can you send us a patch that works for you? we can make it #ifdef __Alpha__ or something. can you ocnfirm that the outgoing packet has a tag-lenth of '8' and that teh return tag has a length of '4'? (maybe 9 and 5) sounds like a brain-dead router at the other end.. On Wed, 1 Aug 2001, Thomas Pornin wrote: > 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-net" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message