Networking and Data Communications Library SNAX/CNM Manual Abstract Part Number SNAX is Tandem’s implementation of IBM’s system network architecture. This Manual discusses Communications Network Management (CNM), the programmatic interface to Tandem’s Service Manager that allows a program residing on a Tandem system to perform network management functions.
Document History Edition Part Number Product Version Operating System Version Date First Edition Second Edition 84133 84245 SNAX B40 SNAX C11 GUARDIAN 90 C00 GUARDIAN 90 C10 November 1987 March 1989 New editions incorporate any updates issued since the previous edition. Copyright All rights reserved. No part of this document may be reproduced in any form, including photocopying or translation to another language, without the prior written consent of Tandem Computers Incorporated.
NEW AND CHANGED INFORMATION This revision of the SNAX/CNM Manual contains new information on the support of Network Management Vector Transports (NMVT) RUs for CNMA and CNMS applications.
CONTENTS PREFACE ..................................................... vii SECTION 1. INTRODUCTION .................................... 1-1 Configuring for Application Access to $SSCP ............... 1-3 The Programmatic Interface ................................ 1-5 Verb/Reply Header ......................................... 1-7 Additional Buffer Parameters ............................. 1-10 Error Handling ........................................... 1-10 Usage Notes .......................................
CONTENTS REPLY^SET^STATISTICS^LIMITS .............................. REPLY^STATISTICS ......................................... SSCP Statistics Block .................................. Line Statistics Block .................................. PU Statistics Block .................................... LU Statistics Block .................................... REPLY^STATUS ............................................. Line Status Block ...................................... PU Status Block ........................
PREFACE SNAX is Tandem's implementation of SNA, IBM's Systems Network Architecture. As with most implementations, SNAX is a partial implementation of the architecture. This manual is directed to system managers and system programmers. It provides information about Communications Network Management (CNM), a programmatic interface to Tandem's Service Manager ($SSCP) that allows a program residing on a Tandem system to perform network-management functions. • Section 1 is an introduction to CNM.
PREFACE • SNAX Reference Summary • System Generation Manual (NonStop systems) • System Manager's Guide (NonStop systems) • Communications Management Interface (CMI) Operator's Guide • Transaction Application Language (TAL) Reference Manual Related IBM documents include: • System Network Architecture: Concepts and Products, GC30-3072 • Systems Network Architecture: Technical Overview, GC30-3073 • Systems Network Architecture: Reference Summary, GA27-3136 • Systems Network Architecture, F
SECTION 1 INTRODUCTION This manual discusses the programmatic interface to the SNAX Service Manager ($SSCP) that allows a program running in a Tandem system to perform network-management functions. The program can serve as both of the following: • A Communications Network Management Application (CNMA). In this role, the program can use CNM verbs to request configuration and statistical information maintained by $SSCP and can request operational statistics from physical devices.
INTRODUCTION The following diagram shows a Tandem network management application serving as a CNMS relative to a host CNMA and serving as a CNMA relative to devices connected to the Tandem system. SNA Host Application (CNMA) (SNAX $SSCP) CNMS Module CNMA Module Tandem Network Management Application Process (SNAX $SSCP) SNA controllers/devices connected to the Tandem system. Each serves as a CNMS relative to the Tandem application process. S7006-001 Figure 1-1.
INTRODUCTION Configuring for Application Access to $SSCP CONFIGURING FOR APPLICATION ACCESS TO $SSCP For purposes of network management, two components of the SNAX Service Manager ($SSCP) are accessible to an application: • The CNM Component allows an application to do standard SNA network management and maintenance functions by using either REQMS and RECFMS or NMVTs.
INTRODUCTION Configuring for Application Access to $SSCP of $SSCP. To gain access, the application will need to include the password "MYPASS " in its VERB^CONNECT, because the CMI ADD APPL command for this application included the PASSWORD attribute. If the PASSWORD attribute had been omitted, this would not be true. >ADD APPL $SSCP.
INTRODUCTION The Programmatic Interface THE PROGRAMMATIC INTERFACE From the viewpoint of a network-management application program, $SSCP looks like a file that must be opened to establish communication and closed to discontinue communication. Once $SSCP is opened, the application program uses WRITEREADs to send requests and to receive replies. Within these file-system requests and replies are placed the CNM verbs and replies.
INTRODUCTION The Programmatic Interface INT file^name[0:11] := ["$SSCPbbb#APPL1bbbbbbbbbb"], file^number, read^count, write^count, count^read; INT(32) tag, temptag; ! Establish communication with $SSCP ! Open $SSCP and execute SETMODE 30 CALL OPEN(file^name,file^number,10) IF <> THEN error CALL SETMODE(file^number,30,1) IF <> THEN error ! Format buffer for VERB^CONNECT and send the verb CALL WRITEREAD(file^number,buffer,write^count,read^count ,,tag) IF <> THEN error CALL AWAITIO(file^number,,count^read,tem
INTRODUCTION Verb/Reply Header VERB/REPLY HEADER The first seventeen words of a verb/reply buffer form a header. The first eight words are common to all verbs and replies, with the exception of VERB^DISCONNECT and REPLY^DISCONNECT. These last two use a seven word header. Figure 1-2 shows the format of the seveteen-word header; the terms used in this format are defined below the figure.
INTRODUCTION Verb/Reply Header Reserved This designation indicates unused fields that must be allocated in the WRITEREAD buffer. CONNECT-ID CONNECT-ID is the integer value returned by a REPLY^CONNECT in response to a VERB^CONNECT. This value must be used in the header of subsequent verbs. VRB/REP Indicator 0 = verb; 1 = reply POS/NEG Reply In verbs, your program sets this field to 0. When the reply arrives, 0 = positive reply, 1 = negative reply.
INTRODUCTION Verb/Reply Header External Error Use 0 on verbs. For positive replies, this field is unchanged. For negative replies, this field should be checked for SNA sense codes. For these sense codes, see Chapter 8 of the IBM Systems Network Architecture Reference Summary. Object Type In a verb, object type specifies the type of SNAX object to which the verb applies.
INTRODUCTION Additional Buffer Parameters ADDITIONAL BUFFER PARAMETERS Some verbs require that additional parameters be appended to the verb/reply header. These additional parameters are explained in Section 2, "Verb Directory." For all verbs, a negative reply leaves these additional parameters unchanged. For the cases where you must provide an SNA record in a verb, you must reserve space for a 6-byte TH header, but the value you include is overridden by SNAX. The recommended TH is 0.
INTRODUCTION Outstanding Verbs USAGE NOTES This subsection first discusses the idea of outstanding verbs. Next follow notes about when statistical counters get reset and about what happens when a program closes $SSCP without first issuing a VERB^DISCONNECT. The subsection ends with suggestions on how to handle network management functions for a remote node of an EXPAND network.
INTRODUCTION Outstanding Verbs • For a VERB^ACCEPT directed to the CONFIG component, the reply buffer might contain an EVENT reply. Thus, your program should always examine the information in the buffer returned in the READ part of a WRITEREAD to determine what kind of reply was delivered. One technique for doing this is illustrated in the sample programs in the appendixes.
INTRODUCTION Outstanding Verbs Table 1-1.
INTRODUCTION Outstanding Verbs Table 1-1.
INTRODUCTION Gathering Information at Remote Nodes Statistical Counters The CMI START LINE command resets the line counters, and the CMI START PU command resets the physical unit counters. You can reset either line or PU counters by using the CMI STATUS command, which has the following syntax: STATUS { LINE | PU } object-name, RESET Your program can also reset these counters as an option of the VERB^STATISTICS (see the STATISTICS entry in Section 2, "Verb Directory," later in this manual).
INTRODUCTION Gathering Information at Remote Nodes Automatic Disconnection If your program closes $SSCP without first issuing a VERB^DISCONNECT, the disconnect operation is performed automatically. Gathering Information at Remote Nodes The preceding discussion assumes your program is gathering information about the node in which your program runs. How can your program gather information about nodes remotely situated in an EXPAND network? Two courses of action are possible: 1.
SECTION 2 VERB DIRECTORY This section consists of a verb directory. It provides a layout of the header format for each verb a CNM program can send to $SSCP. Table 2-1, "Summary of Verbs," lists the verbs in the order in which they appear in this directory and thus provides a table of contents.
VERB DIRECTORY Table 2-1.
VERB DIRECTORY The following verbs are used only when a program acts as a CNMA: VERB^SEND^REQ VERB^ACK^RCV^MS The following verbs are used only when a program acts as a CNMS: VERB^SEND^MS VERB^ACK^RCV^REQ The following verbs are use when a program acts as a CNMA or a CNMS: VERB^CONNECT VERB^DISCONNECT VERB^ACCEPT VERB^SET^STATISTIC^LIMITS VERB^STATISTICS VERB^STATUS 2-3
VERB DIRECTORY VERB^CONNECT VERB^CONNECT This verb follows your OPEN call to the $SSCP and precedes all other verbs. It forms the connection between your program and $SSCP. The reply returns the CONNECT-ID to be used in subsequent verbs.
VERB DIRECTORY VERB^DISCONNECT VERB^DISCONNECT This verb follows all other verbs and precedes your CLOSE call. It breaks the connection between your program and $SSCP. Your program should be sure to await a positive reply to this verb before making the CLOSE call.
VERB DIRECTORY VERB^ACCEPT VERB^ACCEPT This verb requests that $SSCP deliver to your program those records sent by the component specified in the verb (CNM = 2 or CONFIG = 3).
VERB DIRECTORY VERB^ACCEPT Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 0 5 Component ID = 2 or 3 POS/NEG Reply = 0 6 Reserved = 0 7 Reserved = 0 8 Object Type = 0 Function = 1 9 10 Line Name = 0 11 12 13 14 PU Name = 0 15 16 2-7
VERB DIRECTORY VERB^SEND^REQ VERB^SEND^REQ This verb passes an REQMS record or an NMVT requesting network information to SNAX for delivery to a PU. Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 0 POS/NEG Reply = 0 5 Component ID = 2 Function = 4 6 Reserved = 0 7 Reserved = 0 8 Object Type 15 (PU) 9 10 Line Name 11 12 13 14 PU Name 15 16 17...
VERB DIRECTORY VERB^ACK^RCV^MS VERB^ACK^RCV^MS This verb acknowledges receiving from a PU either an RECFMS record or an NMVT containing network information. Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 0 POS/NEG Reply = 0 5 Component ID = 2 Function = 5 6 Reserved = 0 7 Reserved = 0 8 Object Type = 15 (PU) 9 10 Line Name 11 12 13 14 PU Name 15 16 17...
VERB DIRECTORY VERB^SEND^MS VERB^SEND^MS This verb passes an RECFMS record or an NMVT containing network information to SNAX for delivery to a host application. Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 0 5 Component ID = 2 POS/NEG Reply = 0 Function = 2 6 Reserved = 0 7 Reserved = 0 8 Object Type = 15 (PU) 9 10 Line Name 11 12 13 14 PU Name 15 16 17...
VERB DIRECTORY VERB^ACK^RCV^REQ VERB^ACK^RCV^REQ This verb acknowledges receiving from a host application either an REQMS record or an NMVT requesting network information. SNAX passes the trailing RSP(REQMS) or RSP(NMVT) to the host. Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 0 POS/NEG Reply = 0 5 Component ID = 2 Function = 3 6 Reserved = 0 7 Reserved = 0 8 Object Type = 15 (PU) 9 10 Line Name 11 12 13 14 PU Name 15 16 17...
VERB DIRECTORY VERB^SET^STATISTICS^LIMITS VERB^SET^STATISTICS^LIMITS This verb sets the reporting thresholds of LINE or PU statistics counters. Thereafter, an EVENT reply is generated whenever a counter exceeds its threshold. This EVENT reply is sent to your program in response to a pending VERB^ACCEPT directed to the CONFIG component.
VERB DIRECTORY VERB^SET^STATISTICS^LIMITS Word 17 DCE Error LIMIT 18 FCS Error LIMIT 19 FRMR Sent/Received LIMIT 20 I-Frame Received Limit 21 I-Frame Sent Limit 22 ABORTed Received Frame LIMIT 23 REJ Received Limit 24 REJ Sent LIMIT 25 SNA Negative Response LIMIT 26 TEST Received Limit 27 Test Sent LIMIT 28 I-Frame Retransmission LIMIT 29 Write operation Timed out LIMIT A counter triggers an EVENT However, a limit of zero is that the counter will never value.
VERB DIRECTORY VERB^STATISTICS VERB^STATISTICS This verb is sent by the user's application to the $SSCP configuration services to retrieve and optionally reset statistics counters. The application can obtain statistics of the SSCP, a LINE, a PU, or an LU. For a LINE or PU, the verb can further specify that the counters be reset after reading.
VERB DIRECTORY VERB^STATUS VERB^STATUS This verb is sent by the user's application to the $SSCP configuration services to obtain operational state information about a SNAX LINE, a PU, an LU, an application, or $SSCP.
SECTION 3 REPLY DIRECTORY This section consists of a reply directory. It provides a layout of the header format for each reply that $SSCP can return to a CNM program. Table 3-1, "Summary of Positive Replies," lists the replies in the order in which they appear in this directory and thus provides a table of contents.
REPLY DIRECTORY Table 3-1. Summary of Positive Replies Reply Function REPLY^CONNECT passes unique CONNECT-ID identifying the particular application-SSCP connection REPLY^DISCONNECT acknowledges successful termination of connection RCV^MS delivers RECFMS or an NMVT containing network information from a PU REPLY^SEND^REQ reply from PU acknowledging receipt of REQMS or an NMVT requesting network information RCV^REQ passes an RU to the user's application from a host CNMA application.
REPLY DIRECTORY The following replies are sent only when a program acts as a CNMA: RCV^MS, REPLY^SEND^REQ The following replies are sent only when a program acts as a CNMS: RCV^REQ REPLY^SEND^MS The following replies are sent when a program acts as a CNMA or a CNMS: REPLY^CONNECT, REPLY^DISCONNECT EVENT REPLY^SET^STATISTICS^LIMITS REPLY^STATISTICS REPLY^STATUS 3-3
REPLY DIRECTORY REPLY^CONNECT REPLY^CONNECT The REPLY^CONNECT is returned by $SSCP to acknowledge receipt of your VERB^CONNECT. In a positive reply, word 3 contains the CONNECT-ID to be used in subsequent verbs and the POS/NEG indicator in word 5 is 0. In a negative reply, word 3 is 0, the POS/NEG indicator in word 5 is 1, and word 6 contains an error code indicating why the VERB^CONNECT failed.
REPLY DIRECTORY REPLY^DISCONNECT REPLY^DISCONNECT This reply acknowledges receipt of a VERB^DISCONNECT. In a positive reply, the POS/NEG indicator in word 5 is 0. In a negative reply, the POS/NEG indicator in word 5 is 1, and word 6 contains an error code indicating why the VERB^DISCONNECT failed to terminate the application-SSCP connection.
REPLY DIRECTORY RCV^MS RCV^MS This reply passes to your program either an RECFMS record received from a device or an NMVT received from a device; the NMVT will contain network information. Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 1 POS/NEG Reply = 0/1 5 Component ID = 2 Function = 3 6 Internal Error: GUARDIAN 90 Error Code 7 External Error: SNA Sense Code 8 Object Type = 15 (PU) 9 10 Line Name 11 12 13 14 PU Name 15 16 17...
REPLY DIRECTORY REPLY^SEND^REQ REPLY^SEND^REQ This reply passes an SNA response from a device CNMS to the user's application process. The reply acknowledges receipt of an REQMS record or an NMVT requesting network information.
REPLY DIRECTORY RCV^REQ RCV^REQ This reply passes an RU from a host CNMA application to the user's application process. This RU will be either an REQMS record or an NMVT requesting network information. Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 1 5 Component ID = 2 6 7 8 POS/NEG Reply = 0/1 Function = 1 Internal Error: GUARDIAN 90 Error Code External Error: SNA Sense Code Object Type = 15 (PU) 9 10 Line Name 11 12 13 14 PU Name 15 16 17...
REPLY DIRECTORY REPLY^SEND^MS REPLY^SEND^MS This reply acknowledges the receipt of either an RECFMS record or an an NMVT containing network information and passes an SNA response from a host CNMA to the user's application process.
REPLY DIRECTORY EVENT EVENT After a VERB^SET^STATISTICS^LIMITS has set the reporting thresholds of LINE or PU statistics counters, an EVENT reply is generated whenever one of the counters exceeds its threshold. This EVENT reply is sent to your program in response to a pending VERB^ACCEPT directed to the CONFIG component.
REPLY DIRECTORY Line Statistics Block Line Statistics Block The TAL structure below shows the form of the line statistics block.
REPLY DIRECTORY PU Statistics Block PU Statistics Block The TAL structure below shows the form of the PU statistics block.
REPLY DIRECTORY REPLY^SET^STATISTICS^LIMITS REPLY^SET^STATISTICS^LIMITS This reply is sent by the SSCP configuration services to the user's application to acknowledge receipt of a VERB^SET^STATISTICS^LIMITS. Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 1 POS/NEG Reply = 0/1 5 Component ID = 3 Function = 4 6 Internal Error: GUARDIAN 90 Error Code 7 External Error: SNA Sense Code 8 Object Type: PU=15,LINE=8 9 10 Line Name 11 12 13 14 PU Name 15 16 17...
REPLY DIRECTORY REPLY^STATISTICS REPLY^STATISTICS This reply delivers statistics as specified in a VERB^STATISTICS resets counters (LINE or PU) only if specified in the verb.
REPLY DIRECTORY SSCP Statistics Block SSCP Statistics Block The TAL structure below shows the form of the SSCP statistics block.
REPLY DIRECTORY Line Statistics Block Line Statistics Block The TAL structure below shows the form of the line statistics block.
REPLY DIRECTORY LU Statistics Block PU Statistics Block The TAL structure below shows the form of the PU statistics block.
REPLY DIRECTORY REPLY^STATUS REPLY^STATUS This reply delivers operational state information as specified in a preceding VERB^STATUS. Word 0 Reserved 1 Reserved 2 Reserved 3 CONNECT-ID 4 VRB/REP Indicator = 1 5 Component ID = 3 POS/NEG Reply = 0/1 Function = 2 6 Internal Error: GUARDIAN 90 Error Code 7 External Error: SNA Sense Code 8 Object Type: PU=15,LINE=8,SSCP=1,LU=14,APPL=7 9 10 11 Line Name, or Application Name, or 0 (for $SSCP) 12 13 14 PU Name or LU Name 15 16 17...
REPLY DIRECTORY Line Status Block Line Status Block The layout below shows the form of the line statistics block.
REPLY DIRECTORY PU Status Block PU Status Block The layout below shows the form of the PU status block.
REPLY DIRECTORY LU Status Block LU Status Block The layout below shows the form of the LU status block.
REPLY DIRECTORY Application Status Block Application Status Block The TAL structure below shows the form of the application status block. STRUCT APPLSTATUS^TEMPLATE(*); BEGIN INT STATE, ! State of APPL TRACE; ! Trace State END; LITERAL ! APPL state APPL^INACTIVE APPL^OPENED APPL^CONNECTED APPL^DISCONNECTED = = = = 0, 1, 2, 3; SSCP Status Block The TAL structure below shows the SSCP status block.
APPENDIX A SAMPLE PROGRAM: SENDING REQMS AND RECEIVING RECFMS RUS The sample program serves as a Communications Network Application (CNMA).
SAMPLE PROGRAM: SENDING REQMS AND RECEIVING RECFMS RUS ?inspect,Symbols ?icode ?datapages = 30 ! Global Data Declaration : ! Snax^Nm^Frame Verb/Reply Format Struct .Nm^Frame; Begin Int(32) Reserved1; Int Reserved2, Connect^Id, Vr^Indicator, ! verb/reply indicator Comp^Func, ! component/function indicator Int^Err, Ext^Err, Object, Line^Nm^Name[0:3], Pu^Nm^Name[0:3], Nm^Data^Words[0:255]; String Nm^Data^String = Nm^Data^Words; End; ! Snax^Cs^Frame Verb/Reply Format struct .
SAMPLE PROGRAM: SENDING REQMS AND RECEIVING RECFMS RUS Int Write^Cnt, Read^Cnt, .
SAMPLE PROGRAM: SENDING REQMS AND RECEIVING RECFMS RUS ! CONFIG (CS) function codes (replies from $SSCP) Cs^Reply^Event Cs^Reply^Status Cs^Reply^Statistics Cs^Reply^Setlimits = = = = 1, 2, 3, 4; ! ! ! ! EVENT REPLY^STATUS REPLY^STATISTICS REPLY^SET^STATISTICS^LIMITS Literal ! CNM function codes (verbs from application) Nm^Verb^Accept Nm^Verb^Send^Ms Nm^Verb^Ack^Rcv^Req Nm^Verb^Send^Req Nm^Verb^Ack^Rcv^Ms = = = = = 1, 2, 3, 4, 5, ! ! ! ! ! VERB^ACCEPT SEND RECFMS ACKNOWLEDGE REQMS SEND REQMS TO PU
SAMPLE PROGRAM: SENDING REQMS AND RECEIVING RECFMS RUS ! send VERB^CONNECT Nm^Frame.Vr^Indicator := 0; Nm^Frame.Comp^Func.0:7 := 0; !component $SSCP Nm^Frame.Comp^Func.8:15 := 1; !connect function Nm^Frame.Line^Nm^Name ':=' "#CNMAPPL"; !appl Name Nm^Frame.
SAMPLE PROGRAM: SENDING REQMS AND RECEIVING RECFMS RUS ! check the file-system/CNM reply ! ! ! Call Awaitio(Out^File^Number,,Read^Cnt,Temp^Tag); If <> Then Begin Handle Error End; If Nm^Frame.Vr^Indicator.8:15 = 1 Then Begin Handle Error End; If Nm^Frame.Comp^Func.8:15 <> Nm^Reply^Send^Req Then Begin Handle Error End; ! receive RECFMS Nm^Frame.Vr^Indicator := 0; Nm^Frame.Comp^Func.0:7 := 2; !component cnm Nm^Frame.Comp^Func.
SAMPLE PROGRAM: SENDING REQMS AND RECEIVING RECFMS RUS ! send +rsp(RECFMS) Nm^Frame.Vr^Indicator := 0; Nm^Frame.Connect^Id := Save^Connect^Id; Nm^Frame.Comp^Func.0:7 := 2; !component cnm Nm^Frame.Comp^Func.8:15 := Nm^Verb^Ack^Rcv^Ms; Nm^Frame.Line^Nm^Name ':=' ["$SNALUP "]; Nm^Frame.Pu^Nm^Name ':=' ["#PU "]; Nm^Frame.Object := Pi^Pu; Nm^Frame.
SAMPLE PROGRAM: SENDING REQMS AND RECEIVING RECFMS RUS !check the file-system/CNM reply Call Awaitio(Out^File^Number,,Read^Cnt,Temp^Tag); If <> Then Begin Handle Error End; If Cs^Frame.Vr^Indicator.8:15 = 1 Then Begin Handle Negative Reply End; If Cs^Frame.Comp^Func.8:15 <> Cs^Reply^Statistics Then Begin Handle Error End; ! ! ! ! Etc... ! Disconnect Nm^Frame.Vr^Indicator := 0; Nm^Frame.Comp^Func.0:7 := 0; !component $SSCP Nm^Frame.Comp^Func.8:15 := 2; !disconnect function Nm^Frame.
APPENDIX B SAMPLE PROGRAM: SENDING AND RECEIVING NMVT RUS The sample program serves as a Communications Network Application (CNMA).
SAMPLE PROGRAM: SENDING AND RECEIVING NMVT RUS ?inspect,Symbols ?icode ?datapages = 30 ! Global Data Declaration : ! Snax^Nm^Frame Verb/Reply Format Struct .Nm^Frame; Begin Int(32) Reserved1; Int Reserved2, Connect^Id, Vr^Indicator, ! verb/reply indicator Comp^Func, ! component/function indicator Int^Err, Ext^Err, Object, Line^Nm^Name[0:3], Pu^Nm^Name[0:3], Nm^Data^Words[0:255]; String Nm^Data^String = Nm^Data^Words; End; ! Snax^Cs^Frame Verb/Reply Format struct .
SAMPLE PROGRAM: SENDING AND RECEIVING NMVT RUS Save^Connect^Id; Int(32) Tag, Temp^Tag; Literal ! object types 0=any or all, ! DISCONNECT Pi^Sscp = 1, ! object Pi^Appl = 7, ! object Pi^Lu = 14, ! object Pi^Pu = 15, ! object Pi^Line = 8; ! object used with CONNECT,ACCEPT, type: type: type: type: type: SSCP APPL LU PU LINE string ! (Rh + Ru) ! these are hard-coded examples of the NMVT requests and ! responses. The application would actually either build those ! RUs or pass ones actually received.
SAMPLE PROGRAM: SENDING AND RECEIVING NMVT RUS Literal ! CONFIG (CS) function codes (verbs from application) Cs^Verb^Accept Cs^Verb^Status Cs^Verb^Statistics Cs^Verb^Set^Limits = = = = 1, 2, 3, 4, ! ! ! ! VERB^ACCEPT VERB^STATUS VERB^STATISTICS VERB^SET^STATISTICS^LIMITS ! CONFIG (CS) function codes (replies from $SSCP) Cs^Reply^Event Cs^Reply^Status Cs^Reply^Statistics Cs^Reply^Setlimits = = = = 1, 2, 3, 4; ! ! ! ! EVENT REPLY^STATUS REPLY^STATISTICS REPLY^SET^STATISTICS^LIMITS Literal ! CNM fun
SAMPLE PROGRAM: SENDING AND RECEIVING NMVT RUS Call Setmode(Out^File^Number,30,1); ! send VERB^CONNECT Nm^Frame.Vr^Indicator := 0; Nm^Frame.Comp^Func.0:7 := 0; !component $SSCP Nm^Frame.Comp^Func.8:15 := 1; !connect function Nm^Frame.Line^Nm^Name ':=' "#CNMAPPL"; !appl Name Nm^Frame.
SAMPLE PROGRAM: SENDING AND RECEIVING NMVT RUS ! ! ! Call Awaitio(Out^File^Number,,Read^Cnt,Temp^Tag); If <> Then Begin Handle Error End; If Nm^Frame.Vr^Indicator.8:15 = 1 Then Begin Handle Error End; If Nm^Frame.Comp^Func.8:15 <> Nm^Reply^Send^Req Then Begin Handle Error End; ! receive NMVT reply Nm^Frame.Vr^Indicator := 0; Nm^Frame.Comp^Func.0:7 := 2; !component cnm Nm^Frame.Comp^Func.
SAMPLE PROGRAM: SENDING AND RECEIVING NMVT RUS Tag := Tag + 1d; Call Writeread(Out^File^Number,Nm^Frame,Write^Cnt, Read^Cnt,,Tag); ! check the reply and its embedded SNA response ! ! ! ! ! Call Awaitio(Out^File^Number,,Read^Cnt,Temp^Tag); If <> Then Begin Handle Error End; If Read^Cnt Then Begin Check what it is - may be an NMVT request or reply End Else Begin It's O.K.
SAMPLE PROGRAM: SENDING AND RECEIVING NMVT RUS ! Etc... ! Disconnect Nm^Frame.Vr^Indicator := 0; Nm^Frame.Comp^Func.0:7 := 0; !component $SSCP Nm^Frame.Comp^Func.8:15 := 2; !disconnect function Nm^Frame.Line^Nm^Name ':=' "#CNMAPPL"; !appl Name Nm^Frame.
INDEX Application password 1-3, 1-7, 1-9 Automatic disconnection 1-15 CMI See Communications Management Interface CNM See Communications Network Management CNM application (CNMA) 1-1 CNM server (CNMS) 1-1 Communications Management Interface ADD APPL command defining applications 1-3 PASSWORD attribute 1-3 ADD PU command REQMS attribute 1-15 Communications Network Management automatic disconnection 1-15 CMI ADD APPL command and 1-3 CONFIG component 1-3 configuring an application process to error handling 1-
INDEX REQMS attribute of the ADD PU command sample programs A-1, B-1 SETMODE 30 call used with 1-5 statistical counters 1-15 usage notes 1-11 verb/reply header component ID 1-8 CONNECT ID 1-8 external error 1-9 format 1-7 function code 1-8 internal error 1-8 POS/NEG reply indicator 1-8 VRB/REP indicator 1-8 verbs summary 2-2 VERB^ACCEPT 1-11, 2-6 VERB^ACK^RCV^MS 1-12, 2-9 VERB^ACK^RCV^REQ 2-11 VERB^CONNECT 1-5, 2-4 VERB^DISCONNECT 1-5, 1-15, 2-5 VERB^SEND^MS 1-11, 2-10 VERB^SEND^REQ 1-11, 2-8 VERB^SET^STAT
INDEX RCV^MS 3-6 RCV^REQ 3-8 REPLY^CONNECT 3-4 REPLY^DISCONNECT 3-5 REPLY^SENDS^MS 3-9 REPLY^SEND^REQ 3-7 REPLY^SET^STATISTICS^LIMITS REPLY^STATISTICS 3-14 REPLY^STATUS 3-18 summary 3-2 used for CNMA function only used for CNMS function only 3-13 3-3 3-3 Sample program NMVTs B-1/8 REQMS and RECFMS A-1/8 SETMODE 30 call 1-5 Statistical counters 1-15 Usage notes 1-11 Verb/reply header component ID 1-8 CONNECT ID 1-8 external error 1-9 format 1-7 function code 1-8 internal error 1-8 POS/NEG reply indicat