Patch-ID# 100106-02 Keywords: x25 jumbo patch Synopsis: SunLink X.25 : fixes many x25 and x29 bugs. Date: 24/April/91 SunOS release: SunOS 4.0.X, SunOS 4.1, SunOS 4.1.1 Unbundled Product: SunLink X.25 Unbundled Release: 6.0 Topic: Latest X.25 super patch for 6.0. BugId's fixed with this patch: 1026709 1025406 1026714 1026981 1029962 1030101 1026997 1006605 1042291 1046950 1036158 1032204 1046957 1045566 1042982 Architectures for which this patch is available: sun3, sun3x, sun4, sun4c Patches which may conflict with this patch: Obsoleted by: SunNet X.25 7.0 Problem Description: Bug: 1026709 When making a call to a sun4 machine, any user data in the call request packet is misaligned when examined in the returning CONN_DB structure. Bug: 1025406 Invalid packet size for link accepted at call setup. SunLink x25 does not negotiate the packet size, of an HDLC max frame set at 134, down to 128. Bug: 1026714 Unequal call window/packet/throughput size negotiation. Asymmetric values for packet, window and throughput class are not negotiated correctly as call setup. Bug: 1026981 Multiple links, other than the first, will not come up correctly. In a SunLink X.25 6.0 installation employing multiple hdlc links, links 1 and above may not come up correctly in some rare circumstances. The first link (link 0) will not be affected. Bug: 1030101 System crashes when a socket is reused for several connections. Bug: 1026997 X25_RD_LINKADDR and X25_GET_NLINKS do not work. Bug: 1006605 Reverse charging check only uses preset value. When using `RD_FACILITY' to determine which facilities are being used for each virtual circuit, the facility structure returned by the `ioctl' does not reflect the negotiated facilities, and the user cannot accurately determine whether or not the reverse charge bit is set or not set as desired. Bug ID: 1042291 When using non-blocking mode X25 sockets, upon closing the socket, X25 sends a CLEAR REQUEST packet but does not wait for the CLEAR CONFIRM packet to arrive before marking the LCN as available. If a new connect request is made, X25 will erroneously use this LCN thinking that it is available. When the CLEAR CONFIRM packet finally arrives, it is not Bug ID: 1046950 Receiving a DATA packet with the D bit set causes a RESET. The x25_in.o module has been enhanced to allow the receipt of such a packet even if the D bit was not negotiated for during CALL setup phase. This makes it more robust and more in keeping with the specification. X29 Related bugs: ================ Bug: 1029962 Program invoked by x29 does not see SIGHUP signal. When a program is invoked by the X29 using the x29-auth file, it does not receive a SIGHUP when the virtual circuit is cleared. BugID: 1036158 The unsetting of pad parameter 12 is not permitted using stty -ixon start '\377' stop '\377', this would be required for applications that want to send ^S and ^Q. Bug Id: 1032204 x29 only knows about the first 64 ptys (ptyp0 - ptysf) instead of all 256 (ptyp0 - ptyzf, ptyP0 - ptyTf), this patch allows all 256 pty's to be used if they have been configured into the system. Bug Id: 1046957 There is a bug in 6.0 X.25 in the x29 program because of which a SIGINT is not conveyed to the application upon receipt of the INTERRUPT packet. As an example, to interrupt the cat of a long file, ctrl-Pb should send a break signal to the x29 process which will kill the cat operation. Before this fix, it would not kill the cat operation. Bug Id: 1045566 Login sessions to server running x25 arbitrarily lose echo. When login into a system which uses x25, it is possible that echo will not work. Typing stty echo and stty -echo has no affect. In some cases, x29 does not pop the xtty module from the tty stream. So when a normal user gets the pty, it does not have ttcompat at the top of the stream head. PAD Bugs related to Pad: ======================= Bug Id: 1042982 Before this fix, if the pad program encountered bad pad parameters it would stop processing the list. With this new pad program, it will continue to process the good pad parameters and send pad indication along with appropriate error indication. INSTALL: As root: # mv /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_in.o /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_in.o.orig # mv /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_ioctl.o /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_ioctl.o.orig # mv /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_out.o /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_out.o.orig # mv /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_usrreq.o /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_usrreq.o.orig # mv /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_timer.o /usr/sunlink/x25/sys/sun{3x,4c}/OBJ/x25_timer.o.orig install the new system files into /usr/sunlink/x25 # cp sun{3x,4c}/x25_in.o /usr/sunlink/x25/x25_in.o # cp sun{3x,4c}/x25_ioctl.o /usr/sunlink/x25/x25_ioctl.o # cp sun{3x,4c}/x25_out.o /usr/sunlink/x25/x25_out.o # cp sun{3x,4c}/x25_usrreq.o /usr/sunlink/x25/x25_usrreq.o # cp sun{3x,4c}/x25_timer.o /usr/sunlink/x25/x25_timer.o install the new system files into system configuration area # cp sun{3x.4c}/x25_in.o /sys/sun{3x,4c}/OBJ/x25_in.o # cp sun{3x.4c}/x25_ioctl.o /sys/sun{3x,4c}/OBJ/x25_ioctl.o # cp sun{3x.4c}/x25_out.o /sys/sun{3x,4c}/OBJ/x25_out.o # cp sun{3x.4c}/x25_usrreq.o /sys/sun{3x,4c}/OBJ/x25_usrreq.o # cp sun{3x.4c}/x25_timer.o /sys/sun{3x,4c}/OBJ/x25_timer.o # # mv /sun{3x,4c}/x29 /usr/sunlink/x25/x29 # mv /usr/sunlink/x25/pad /usr/sunlink/x25/pad.orig # mv /sun{3x,4c}/pad /usr/sunlink/x25/pad Note: If this is a SunOS 4.1 or 4.1.1 system you need to make the x29 wrapper as in page 97 of the 4.1 Release and Install notes, page 151 of 4.1.1 Release and Install notes. - rebuild your kernel, install it and reboot the machine.