Date: Fri, 11 Jun 2004 16:40:59 +0530 (IST) From: Girish Venkatachalam <girish1729@yahoo.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/67825: PPPoE doesn't work when Relay session ID is sent in PADO Message-ID: <200406111110.i5BBAxaP022355@vinil.tenet.res.in> Resent-Message-ID: <200406111120.i5BBKPjB086055@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 67825 >Category: kern >Synopsis: PPPoE doesn't work when Relay session ID is sent in PADO >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jun 11 11:20:24 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Girish Venkatachalam >Release: FreeBSD 5.2.1-RELEASE i386 >Organization: >Environment: System: FreeBSD vinil.tenet.res.in 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Tue May 11 17:08:23 IST 2004 root@vinil.tenet.res.in:/usr/src/sys/i386/compile/DEVIKERNEL i386 The #define for RELAY SESSION ID parameter is wrong in ng_pppoe.h because of which my home FreeBSD machine wouldn't connect to my ISP in India. This is because if the RELAY SESSION ID given by PADO packet is not echoed in PADR packet a PADS packet is never sent by the server and my machine attemps reconnection in a loop. I am attaching the patch which fixed the problem for me as well as the section in RFC 2516 which gives the value for RELAY SESSION ID. Please apply the patch as quickly as possible since the problem almost drove me nuts for nearly two days. Here is the patch <<<<<<<<<<<<<<<<< --- ng_pppoe.h Fri Jun 11 16:26:33 2004 +++ ng_pppoe.h.new Fri Jun 11 16:24:13 2004 @@ -166,7 +166,7 @@ #define PTT_HOST_UNIQ (0x0103) #define PTT_AC_COOKIE (0x0104) #define PTT_VENDOR (0x0105) -#define PTT_RELAY_SID (0x0106) +#define PTT_RELAY_SID (0x0110) #define PTT_SRV_ERR (0x0201) #define PTT_SYS_ERR (0x0202) #define PTT_GEN_ERR (0x0203) @@ -182,7 +182,7 @@ #define PTT_HOST_UNIQ (0x0301) #define PTT_AC_COOKIE (0x0401) #define PTT_VENDOR (0x0501) -#define PTT_RELAY_SID (0x0601) +#define PTT_RELAY_SID (0x1001) #define PTT_SRV_ERR (0x0102) #define PTT_SYS_ERR (0x0202) #define PTT_GEN_ERR (0x0302) <<<<<<<<<<<<< And here is the section from the RFC for the value of RELAY SESSION ID 0x0110 Relay-Session-Id This TAG MAY be added to any discovery packet by an intermediate agent that is relaying traffic. The TAG_VALUE is opaque to both the Host and the Access Concentrator. If either the Host or Access Concentrator receives this TAG they MUST include it unmodified in any discovery packet they send as a response. All PADI packets MUST guarantee sufficient room for the addition of a Relay-Session-Id TAG with a TAG_VALUE length of 12 octets. A Relay-Session-Id TAG MUST NOT be added if the discovery packet already contains one. In that case the intermediate agent SHOULD use the existing Relay-Session-Id TAG. If it can not use the existing TAG or there is insufficient room to add a Relay- Session-Id TAG, then it SHOULD return a Generic-Error TAG to the sender. -Girish >Description: >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406111110.i5BBAxaP022355>