Patch-ID# 100517-09
Keywords: y2k year 2000 cons_output crash 
Synopsis: SunLink OSI 7.0.1: Patch for OSI 
Date: Feb/15/99

Solaris Release: 1.0 1.0.1, 1.1, 1.1.2

SunOS release: 4.1.1, 4.1.2, 4.1.3, 4.1.4

Unbundled Product: SunLink OSI

Unbundled Release: 7.0.1

Topic: bug fixes, year 2000 compliance

BugId's fixed with this patch: 4159999

Changes incorporated in this version: 

Relevant Architectures: sparc

Relevant Architectures: sparc
NOTE:  sun4, sun4c, sun4m

Patches which may conflict with this patch: 

Obsoleted by: 


Problem Description: 

  Version -09 makes Sunlink OSI 7.0 Year 2000 compliant. It is assumed
  that all necessary patches will be applied on your system to also bring it 
  into Year 2000 compliance requirements.

  Version -04 corrects a problem with the osi.routed in the -02 rev
  as well as some README errors.


			******************************
			* PLEASE READ THIS CAREFULLY *
			******************************

This version of the patch for OSI 7.0 contains a number of changes and
additional functionality which is described below.   These changes fall into
a number of categories:

1. bug fixes - a list of bug fixes is described below.
2. enhancements - these have been based on customer feedback, and some 
   additional functionality has been added as a result.
3. conformance - with this patch installed the resulting OSI product is 
	brought into conformance with US GOSIP V1 requirements.  The product
	name which is officially registered is SunNet OSI 7.1.  This patch
	makes the standard SunNet OSI 7.0.1 identical to this conformance
	tested version.

Note that some of these changes might introduce interoperability problems with
other systems, particularly non-US GOSIP conformant systems, where such problems
have not been evident before.

Gosip V1 conformance is only claimed for sun4, sun4c and sun4m based machines.

The programming interfaces, and installation procedure have not been changed in 
any way.

All previous versions of the OSI patch (100517) are incorporated in this
patch for consistency.


Bug Fixes
=========

In this version:

Bug 4159999	- system panics in cons_output


In previous versions:

Bug 1169374     - system panics if too many IS on the network
Bug 4018736	- Transport connection rejected when priority parameter used
Bug 1266839     - TPDU AK dropped when window has been reopened
Bug 1202598     - OSI didn't answer on received packets
Bug 1182282	- OSI crashes with bad trap when there is a lot of traffic
Bug 1194403	- Protocol error in the Session when the Connect/Accept item
Bug 1194891	- Protocol error in the Session when the Connect/Accept item
		  PGI is not present in the ACCEPT S-PDU
Bug 114011	- FTAM Implementation cannot transfer files over 8000
		  bytes successfully
Bug 1085260     - no multicast and broadcastaddresses over llc and sock_dgram
Bug 1051824     - initialization errors with CONS/X.25
Bug 1070487     - bug in install script which causes the script to exit
                  whenever /etc/hosts has hostname aliases.
Bug 1076855     - osi_config does not display a value for t_reference.
Bug 1077772     - problem with the handling of concurrency control.
Bug 1081029     - intermittent TP4 disconnections observed.
Bug 1093029     - TP2 will not queue expedited data in certain circumstances.
Bug 1100882     - Bad interpretation of format effectors with FTAM-1 files.

Additional problems fixed include:

1. the FTAM Initiator can now be run from a shell script.
2. the FTAM responder will no longer negotiate the Minor Synchronization
   Session Functional Unit if it is proposed by the Initiator.  Neither the
   Minor Synchronization or Resynchronisation Functional Units are supported.


Details on use of TNetListen() in Transport library:

In SunNet OSI Programmer's Manual, Chapter 2 - Transport Services, page 73,
it is said that the library supports a facility which permits a process to
listen for certains connections. For such cases, a program begins listening for 
a particular connection by calling the routine TNetListen

TNetListen has the following prototype:
int TNetListen (ta, td)
struct TSAPaddr *ta;
struct TSAPdisconnect *td;

where:
ta is the Transport address (0 or more network addresses) to listen on
td is a pointer to a TSAPdisconnect structure, which is updated only if the call
fails

In fact, when using the OSI transport service over TCP/IP (ie RFC1006)
you can only specify your own local Network address (ie your local IP address) 
in the TSAPaddr.

This restriction is only applicable to RFC1006 and is meaningless when X.25
or CLNP networks are used.

  -----------------------------------------------------------------

Patch Installation Instructions: 
-------------------------------- 
Install Instructions: 

Use sun4 for sun4* machines.

As root:

cd /usr/sunlink/osi
chmod -R +w *


update new files:

bin:

mv `arch`/bin/ftam /usr/sunlink/osi/bin/ftam
mv `arch`/bin/imisc /usr/sunlink/osi/bin/imisc
mv `arch`/bin/isoc /usr/sunlink/osi/bin/isoc


etc:

mv `arch`/etc/entities.add /usr/sunlink/osi/etc/entities.add
mv `arch`/etc/get_macaddr /usr/sunlink/osi/etc/get_macaddr
mv `arch`/etc/get_nsap /usr/sunlink/osi/etc/get_nsap
mv `arch`/etc/iso.ftam /usr/sunlink/osi/etc/iso.ftam
mv `arch`/etc/isod /usr/sunlink/osi/etc/isod
mv `arch`/etc/isologs /usr/sunlink/osi/etc/isologs
mv `arch`/etc/make_my_addr /usr/sunlink/osi/etc/make_my_addr
mv `arch`/etc/osi.routed /usr/sunlink/osi/etc/osi.routed
mv `arch`/etc/osi_config /usr/sunlink/osi/etc/osi_config
mv `arch`/etc/osi_decode /usr/sunlink/osi/etc/osi_decode
mv `arch`/etc/osi_perform /usr/sunlink/osi/etc/osi_perform
mv `arch`/etc/osi_ping /usr/sunlink/osi/etc/osi_ping
mv `arch`/etc/osi_pingd /usr/sunlink/osi/etc/osi_pingd
mv `arch`/etc/osi_send /usr/sunlink/osi/etc/osi_send
mv `arch`/etc/osi_trace /usr/sunlink/osi/etc/osi_trace
mv `arch`/etc/osirstat /usr/sunlink/osi/etc/osirstat
mv `arch`/etc/readshf /usr/sunlink/osi/etc/readshf
mv `arch`/etc/tsapd /usr/sunlink/osi/etc/tsapd

include:

mv `arch`/include/isode/acpkt.h /usr/sunlink/osi/include/isode/acpkt.h
mv `arch`/include/isode/fpkt.h /usr/sunlink/osi/include/isode/fpkt.h
mv `arch`/include/isode/ftam.h /usr/sunlink/osi/include/isode/ftam.h
mv `arch`/include/isode/logger.h /usr/sunlink/osi/include/isode/logger.h
mv `arch`/include/isode/psap.h /usr/sunlink/osi/include/isode/psap.h
mv `arch`/include/isode/psap2.h /usr/sunlink/osi/include/isode/psap2.h
mv `arch`/include/isode/rtsap.h /usr/sunlink/osi/include/isode/rtsap.h
mv `arch`/include/isode/spkt.h /usr/sunlink/osi/include/isode/spkt.h
mv `arch`/include/isode/ssap.h /usr/sunlink/osi/include/isode/ssap.h
mv `arch`/include/isode/tpkt.h /usr/sunlink/osi/include/isode/tpkt.h
mv `arch`/include/isode/tsap.h /usr/sunlink/osi/include/isode/tsap.h

mv `arch`/include/netosi/cons_impl.h /usr/sunlink/osi/include/netosi/cons_impl.h
mv `arch`/include/netosi/ind.h /usr/sunlink/osi/include/netosi/ind.h
mv `arch`/include/netosi/ind_pcb.h /usr/sunlink/osi/include/netosi/ind_pcb.h
mv `arch`/include/netosi/osi_netctl.h /usr/sunlink/osi/include/netosi/osi_netctl.h
mv `arch`/include/netosi/osi_route.h /usr/sunlink/osi/include/netosi/osi_route.h
mv `arch`/include/netosi/osi_trace_user.h /usr/sunlink/osi/include/netosi/osi_trace_user.h
mv `arch`/include/netosi/osinm.h /usr/sunlink/osi/include/netosi/osinm.h
mv `arch`/include/netosi/ses_event.h /usr/sunlink/osi/include/netosi/ses_event.h
mv `arch`/include/netosi/ses_impl.h /usr/sunlink/osi/include/netosi/ses_impl.h
mv `arch`/include/netosi/tp_event.h /usr/sunlink/osi/include/netosi/tp_event.h
mv `arch`/include/netosi/tp_impl.h /usr/sunlink/osi/include/netosi/tp_impl.h


lib:

mv `arch`/lib/libosi.a /usr/sunlink/osi/lib/libosi.a
mv `arch`/lib/libsession.a /usr/sunlink/osi/lib/libsession.a
mv `arch`/lib/libsunosi.a /usr/sunlink/osi/lib/libsunosi.a
mv `arch`/lib/lint/llib-losi.ln /usr/sunlink/osi/lib/lint/llib-losi.ln
mv `arch`/lib/lint/llib-lsession.ln /usr/sunlink/osi/lib/lint/llib-lsession.ln
mv `arch`/lib/lint/llib-lsunosi /usr/sunlink/osi/lib/lint/llib-lsunosi
mv `arch`/lib/lint/llib-lsunosi.ln /usr/sunlink/osi/lib/lint/llib-lsunosi.ln

sys:

mv `arch`/sys/OBJ/cons_event.o /usr/sunlink/osi/sys/OBJ/cons_event.o
mv `arch`/sys/OBJ/cons_impl.o /usr/sunlink/osi/sys/OBJ/cons_impl.o
mv `arch`/sys/OBJ/if_eon.o /usr/sunlink/osi/sys/OBJ/if_eon.o
mv `arch`/sys/OBJ/if_olo.o /usr/sunlink/osi/sys/OBJ/if_olo.o
mv `arch`/sys/OBJ/if_xncl.o /usr/sunlink/osi/sys/OBJ/if_xncl.o
mv `arch`/sys/OBJ/ind_addr.o /usr/sunlink/osi/sys/OBJ/ind_addr.o
mv `arch`/sys/OBJ/ind_chksum.o /usr/sunlink/osi/sys/OBJ/ind_chksum.o
mv `arch`/sys/OBJ/ind_error.o /usr/sunlink/osi/sys/OBJ/ind_error.o
mv `arch`/sys/OBJ/ind_es_is.o /usr/sunlink/osi/sys/OBJ/ind_es_is.o
mv `arch`/sys/OBJ/ind_forward.o /usr/sunlink/osi/sys/OBJ/ind_forward.o
mv `arch`/sys/OBJ/ind_if_info.o /usr/sunlink/osi/sys/OBJ/ind_if_info.o
mv `arch`/sys/OBJ/ind_inactive.o /usr/sunlink/osi/sys/OBJ/ind_inactive.o
mv `arch`/sys/OBJ/ind_input.o /usr/sunlink/osi/sys/OBJ/ind_input.o
mv `arch`/sys/OBJ/ind_is_list.o /usr/sunlink/osi/sys/OBJ/ind_is_list.o
mv `arch`/sys/OBJ/ind_n_e_t.o /usr/sunlink/osi/sys/OBJ/ind_n_e_t.o
mv `arch`/sys/OBJ/ind_output.o /usr/sunlink/osi/sys/OBJ/ind_output.o
mv `arch`/sys/OBJ/ind_pcb.o /usr/sunlink/osi/sys/OBJ/ind_pcb.o
mv `arch`/sys/OBJ/ind_register.o /usr/sunlink/osi/sys/OBJ/ind_register.o
mv `arch`/sys/OBJ/ind_route.o /usr/sunlink/osi/sys/OBJ/ind_route.o
mv `arch`/sys/OBJ/ind_src_addr.o /usr/sunlink/osi/sys/OBJ/ind_src_addr.o
mv `arch`/sys/OBJ/ind_usrreq.o /usr/sunlink/osi/sys/OBJ/ind_usrreq.o
mv `arch`/sys/OBJ/osi_addr.o /usr/sunlink/osi/sys/OBJ/osi_addr.o
mv `arch`/sys/OBJ/osi_debug.o /usr/sunlink/osi/sys/OBJ/osi_debug.o
mv `arch`/sys/OBJ/osi_error.o /usr/sunlink/osi/sys/OBJ/osi_error.o
mv `arch`/sys/OBJ/osi_glue.o /usr/sunlink/osi/sys/OBJ/osi_glue.o
mv `arch`/sys/OBJ/osi_mbuf.o /usr/sunlink/osi/sys/OBJ/osi_mbuf.o
mv `arch`/sys/OBJ/osi_pcb.o /usr/sunlink/osi/sys/OBJ/osi_pcb.o
mv `arch`/sys/OBJ/osi_profile.o /usr/sunlink/osi/sys/OBJ/osi_profile.o
mv `arch`/sys/OBJ/osi_proto.o /usr/sunlink/osi/sys/OBJ/osi_proto.o
mv `arch`/sys/OBJ/osi_route.o /usr/sunlink/osi/sys/OBJ/osi_route.o
mv `arch`/sys/OBJ/osi_trace.o /usr/sunlink/osi/sys/OBJ/osi_trace.o
mv `arch`/sys/OBJ/osinm_event.o /usr/sunlink/osi/sys/OBJ/osinm_event.o
mv `arch`/sys/OBJ/ses_action.o /usr/sunlink/osi/sys/OBJ/ses_action.o
mv `arch`/sys/OBJ/ses_error.o /usr/sunlink/osi/sys/OBJ/ses_error.o
mv `arch`/sys/OBJ/ses_event.o /usr/sunlink/osi/sys/OBJ/ses_event.o
mv `arch`/sys/OBJ/ses_impl.o /usr/sunlink/osi/sys/OBJ/ses_impl.o
mv `arch`/sys/OBJ/ses_machine.o /usr/sunlink/osi/sys/OBJ/ses_machine.o
mv `arch`/sys/OBJ/ses_pdu.o /usr/sunlink/osi/sys/OBJ/ses_pdu.o
mv `arch`/sys/OBJ/ses_stream.o /usr/sunlink/osi/sys/OBJ/ses_stream.o
mv `arch`/sys/OBJ/tp0_action.o /usr/sunlink/osi/sys/OBJ/tp0_action.o
mv `arch`/sys/OBJ/tp_action.o /usr/sunlink/osi/sys/OBJ/tp_action.o
mv `arch`/sys/OBJ/tp_classes.o /usr/sunlink/osi/sys/OBJ/tp_classes.o
mv `arch`/sys/OBJ/tp_event.o /usr/sunlink/osi/sys/OBJ/tp_event.o
mv `arch`/sys/OBJ/tp_impl.o /usr/sunlink/osi/sys/OBJ/tp_impl.o
mv `arch`/sys/OBJ/tp_pdu.o /usr/sunlink/osi/sys/OBJ/tp_pdu.o

mv `arch`/sys/OBJ.netdlc/hdlc_ctl.o /usr/sunlink/osi/sys/OBJ.netdlc/hdlc_ctl.o
mv `arch`/sys/OBJ.netdlc/hdlc_in.o /usr/sunlink/osi/sys/OBJ.netdlc/hdlc_in.o
mv `arch`/sys/OBJ.netdlc/hdlc_out.o /usr/sunlink/osi/sys/OBJ.netdlc/hdlc_out.o
mv `arch`/sys/OBJ.netdlc/if_hdlc.o /usr/sunlink/osi/sys/OBJ.netdlc/if_hdlc.o
mv `arch`/sys/OBJ.netdlc/if_iip.o /usr/sunlink/osi/sys/OBJ.netdlc/if_iip.o
mv `arch`/sys/OBJ.netdlc/if_llc.o /usr/sunlink/osi/sys/OBJ.netdlc/if_llc.o
mv `arch`/sys/OBJ.netdlc/llc_input.o /usr/sunlink/osi/sys/OBJ.netdlc/llc_input.o
mv `arch`/sys/OBJ.netdlc/llc_pcb.o /usr/sunlink/osi/sys/OBJ.netdlc/llc_pcb.o
mv `arch`/sys/OBJ.netdlc/llc_register.o /usr/sunlink/osi/sys/OBJ.netdlc/llc_register.o
mv `arch`/sys/OBJ.netdlc/llc_usrreq.o /usr/sunlink/osi/sys/OBJ.netdlc/llc_usrreq.o

mv `arch`/sys/netosi/cons_impl.h /usr/sunlink/osi/sys/netosi/cons_impl.h
mv `arch`/sys/netosi/ind.h /usr/sunlink/osi/sys/netosi/ind.h
mv `arch`/sys/netosi/ind_pcb.h /usr/sunlink/osi/sys/netosi/ind_pcb.h
mv `arch`/sys/netosi/osi_netctl.h /usr/sunlink/osi/sys/netosi/osi_netctl.h
mv `arch`/sys/netosi/osi_route.h /usr/sunlink/osi/sys/netosi/osi_route.h
mv `arch`/sys/netosi/osi_trace_user.h /usr/sunlink/osi/sys/netosi/osi_trace_user.h
mv `arch`/sys/netosi/osinm.h /usr/sunlink/osi/sys/netosi/osinm.h
mv `arch`/sys/netosi/ses_event.h /usr/sunlink/osi/sys/netosi/ses_event.h
mv `arch`/sys/netosi/ses_impl.h /usr/sunlink/osi/sys/netosi/ses_impl.h
mv `arch`/sys/netosi/tp_event.h /usr/sunlink/osi/sys/netosi/tp_event.h
mv `arch`/sys/netosi/tp_impl.h /usr/sunlink/osi/sys/netosi/tp_impl.h



and run install.osi script, but answer "n" on the following questions:

Install (or update) /etc/sunlink/osi/rc? (y/n)[y]: n
Install (or update) /etc/sunlink/osi/rc.config? (y/n)[y]: n
Install (or update) /etc/sunlink/osi/routes? (y/n)[y]: n
Install (or update) /etc/sunlink/osi/isoentities? (y/n)[y]: n
Install (or update) /etc/sunlink/osi/isobjects? (y/n)[y]: n
Install (or update) /etc/sunlink/osi/isoservices? (y/n)[y]: n
Install (or update) /etc/sunlink/osi/isomacros? (y/n)[y]: n
Install (or update) /etc/sunlink/osi/isotailor? (y/n)[y]: n
Install (or update) /etc/sunlink/osi/isodocuments? (y/n)[y]: n

and answer "y" on the following question:

Install (or update) your system files? (y/n)[y]: y


rebuild kernel, and reboot systems.

