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.



