Date: Thu, 5 Jul 2001 17:24:17 -0700 (PDT) From: Richard Hodges <rh@matriplex.com> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/28748: HARP may reject SVCs from certain ATM switches Message-ID: <200107060024.f660OHF65335@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 28748 >Category: kern >Synopsis: HARP may reject SVCs from certain ATM switches >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Jul 05 17:30:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Richard Hodges >Release: FreeBSD 4.x (apparently affects 3.x too) >Organization: Matriplex, inc. >Environment: All HARP versions are likely to be affected. >Description: This problem was first noticed with a Xylan/Omniswitch ATM switch. In this case, HARP could not connect to the ARP server. The switch sent CALL PROCEEDING and CONNECT, but HARP replied with RELEASE, and cause code "missing connection ID". Unlike Fore switches, the Xylan switch sent the connection ID in the CALL PROCEEDING message, but not CONNECT. This is allowed (UNI 3.1, 5.3.1.3, page 170). The CONNECT code in netatm/uni/unisig_vc_state.c checks for the connection ID from a previous CALL PROCEEDING message, but fails to allow for a VPI value of zero (!) It is likely that the HARP authors used exclusively Fore switches, and this code was probably not tested. >How-To-Repeat: To demonstrate this problem, connect a FreeBSD/HARP system to a switch that does not send the connection ID (VPI and VCI) with CONNECT. This is known to be the case with Xylan, and presumably others may also have this behavior. HARP will set up an SVC, but disconnect (RELEASE) at the very end. This can be seen by configuring an external ARP server. >Fix: The following patch allows the VPI to be any value, including zero. In fact, zero is probably the most common case for an SVC. --- /usr/src/sys/netatm/uni/unisig_vc_state.c Mon Jan 17 12:49:59 2000 +++ /usr/src/sys/netatm/uni/unisig_vc_state.c.new Thu Jul 5 16:59:50 2001 @@ -645,11 +645,11 @@ uvp->uv_vci = vci; } else { /* * No--VPI/VCI must have been specified earlier */ - if (!uvp->uv_vpi || !uvp->uv_vci) { + if (!uvp->uv_vci) { iep = (struct ie_generic *)atm_allocate( &unisig_iepool); if (!iep) return(ENOMEM); iep->ie_ident = UNI_IE_CNID; >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107060024.f660OHF65335>