SNA is IBMs own proprietry network architecture, it has evolved since the first version was introduced in 1974. The structure of SNA is similar to OSI, open systems interconnection - defined by ISO & CCITT, in that is is devided into a number of layers although the layers of the two architectures do no line up exactly. There are other fundamental differences between the two architectures, OSI is designed for the exchange of information between autonomous systems allowing communication between different manufactures equipment, SNA is to define a single architecture for IBMs product offerings. In addition to the interface to terminal equipment SNA also defines details of network management (about time CCITT did this). SNA defines different types of terminal equipment, clusters such as 3270 only need to use a subset of the architecture.
TABLE OF CONTENTS
- 1 - Protocols
- 2 - Transmission Protocols
- 3 - Transmission Header (TH)
- 4 - OSI and SNA layers
- 5 - SNA over X.25
1 - SNA OVERVIEW
- SNAs physical layer is functionally equivilant to OSIs physical layer
- SNAs datalink layer uses SDLC, this isubset of HDLC, however it can also support system/370 data channels, X.21 and X.25 - see my notes on QLLC
- SNA defines system management functions to allow the network
to be run from a number of system service control points (SSCP).
+--------------------
End User --_ | Request Unit (RU) |
| or Response unit |
+--------------------|
information passed to
logical unit which
adds a header
+----------------------------------------
| Request Header(RH)| Request Unit (RU) |
| or response header| or Response unit |
+-------------------+--------------------|
_----- Basic information
Unit (BIU) -----_
information passed to
path control element
which adds own header
+--------------------------------------------------------
| Transmission | Request Header(RH)| Request Unit (RU) |
| Header | or response header| or Response unit |
+---------------+-------------------+--------------------|
_----- Basic information
Unit (BIU) -----_
_--------- Path Information Unit (PIU) ------------------_
This information is passed
to data link control DLC
which adds a header + trailer
+-----------------------------------------------------------------------------
| Link Header | Transmission | Request Header(RH)| Request Unit (RU) |Link |
|) | Header (TH) | or response header| or Response unit |Trailer
+-------------+---------------+-------------------+--------------------+------|
_----- Basic Information Unit (BIU) -----_
_--------- Path Information Unit (PIU) ------------------_
_------------ Basic Link Unit (BLU) -----------------------------------------_
Sequencing
The architecture specifies that requests and responses must arrive
at their destination in the same order in which the sender transmits
the message units. Because data link control can route related
PIUs over different links within a transmission group, path control
in another node might not receive the PIUs in the order in which
they were sent.
The path control network assigns transmission group sequence numbers
to PIUs before transmitting them.
Blocking
+------------------+------------------+------------------
| TH | RH | RU | TH | RH | RU | TH | RH | RU |
+----+----+--------+----+----+--------+----+----+--------|
_---- PIU --------__---- PIU --------__---- PIU ---------_
path information
unit
_----- Basic Transmission Unit (BTU) -------------------_
Segmenting
+------------------
| TH | RH | RU |
+----+----+--------|
_---- PIU ---------_
+------------------ +------------------ +------------------
| TH | RH | RU | | TH | RH | RU | | TH | RH | RU |
+----+----+--------| +----+----+--------| +----+----+--------|
_---- PIU ---------_ _---- PIU ---------_ _---- PIU ---------_
segment
_-- basic ---------_ _-- basic ---------_ _-- basic ---------_
transmission unit transmission unit transmission unit
BTU BTU BTU
Transmission Header (TH)
There are different types of TH determined by bits 0-3
Bits | FID | Length | |
0000 | FID0 | 10bytes | for traffic involving non-SNA devices between adjacent subarea nodes |
0001 | FID1 | 10bytes | for traffic between adjacent subarea nodes |
0010 | FID2 | 6bytes | for traffic between a subarea node and an adjacent type 2.0 or 2.1 peripheral node |
0011 | FID3 | 2bytes | for traffic between a subarea node and an adjacent type 1 peripheral node. |
0100 | FID4 | 26bytes | for traffic between adjacent subarea nodes when both nodes support explicit route and virtual route protocols. |
1111 | FIDF | 26bytes | for certain commands (for example, for transmission group control) sent between adjacent subarea nodes when both nodes support explicit route and virtual route protocols. |
Transmission Header Coding
Type 0 | Type 1 | Type 2 | Type 3 | |
Byte 0 Bit 0-3 | 0000 | 0001 | 0010 | 0011 |
Byte 0 Bit 4-5 | Segmenting | |||
00=Middle | ||||
01=Last | ||||
10=First | ||||
11=Only | ||||
Byte 0BBit 6 | Reserved | Reserved | OAF-DAF | Reserved |
0=used by the assigning node having the greater role negotiation-value | ||||
1=used by the other node | ||||
Byte 0 Bit 7 | Expidited Flow Indicator EFI | |||
0=normal flow | ||||
1=expedited flow | ||||
Byte 1 | Reserved | Reserved | Reserved | Local Session |
Identification | ||||
(LSID) | ||||
0000 0000 = SSCP-PU | ||||
01xx xxxx = SSCP-LU | ||||
10xx xxxx = Reserved | ||||
11xx xxxx = LU LU | ||||
\-----/ | ||||
local address |
RH Formats
_----------Byte 0--------------_|_----------Byte 1-------------_|_---------Byte
2--------------_
Request Header
RRI. RU . r .FII.BCI.ECI | DR1. r .DR2.ERI. r . r .QRI.PI | BBI.EBI.CDI. r .CSI.EDI.PDI. r |
=0 .category . . . . | I . .I . . . . . | . . . . . . . |
Response Header
RRI. RU . r .FI .SDI. 1 . 1 | DR1. r .DR2.ERI. r . r .QRI.PI | r . r . r . r . r . r . r . r |
=1 .category . . . . | I . .I . . . . . | . . . . . . . |
PA
Abbreviations used in RH formats
RRI | request-response indicator | 0=request(RQ) 1=reponse(RSP) | ||
RU category | request-response unit category | 00=FM data (FMD) | ||
01=Network control (NC) | ||||
10=Data flow control (DFC) | ||||
11=Session control (SC) | ||||
FI | format indicator | 0=no FM header (FMH) for LU-LU sessions; or | ||
character-coded without an NS header (NSH) | ||||
for network services; | ||||
1=FM header follows (FMH) for LU-LU sessions; or | ||||
character-coded with an NS header (NSH) | ||||
for network services; | ||||
SDI | sense data included indicator | 0=not included (SD); 1=included (SD) | ||
BCI | begin chain indicator | 0=not first in chain (BC); 1=first in chain (BC) | ||
ECI | end chain indicator | 0=not last in chain(EC); 1=last in chain (EC) | ||
DR1I | Definite Response 1 indicator | 0=#DR1; 1=DR1 | ||
DR2I | Definite response 2 indicator | 0=#DR2; 1=DR2 | ||
ERI | exception response indicator | used in conjunction with DR1I and DR2I to indicate, in | ||
a request, the form of response requested: | ||||
I,DR2I,ERI=000 means no-response requested | ||||
100 | 010 | 110 means definite-response requested | ||
101 | 011 | 111 means exception-response requested | ||
001=reserved | ||||
RTI | response type indicator | 0=positive : 1=negative | ||
QRI | queued response indicator | 0=response bypasses TC queues (#QF) | ||
1=enqueue response in TC queues (QR) | ||||
PI | pacing indicator | 0=#PAC 1=PAC | ||
BBI | begin bracket indicator | 0=#BB 1=BB | ||
EBI | end bracket indicator | 0=#EB 1=EB | ||
CDI | change direction indicator | 0=do not hange direction | ||
1=change direction | ||||
CSI | code selection indicator | 0=code 0 | ||
1=code 1 | ||||
EDI | enciphered data indicator | 0=RU is not enciphered | ||
1=RU is enciphered | ||||
PDI | padded data indicator | 0=RU is not padded | ||
1=RU is padded |
SNA over X.25
To allow an X25 network to provide all the facilities of the data-link
control then a layer must be inserted between path control and
X.25. This layer is called logical link control, there are 3 versions
of this -
PSH = Physical Services Header
QLLC = Qualified Logical Link Control
ELLC = Enhanced logical Link Control
Qualified Logical Link Control (QLLC)
SNA SNA over X.25
| |
| Higher SNA Layers |
.+-------------------|
. | |
. | Path Control |
. .+-------------------|
. . | |
. . | Logical Link |
| | . . | Control QLLC, |
| Higher SNA Layers | . . | ELLC or PSH |
+-------------------|. . +-------------------|
| | . | |
| Path Control | . | X.25 Packet Layer |
+-------------------|. +-------------------|
| | | |
| Data-Link control | | X.25 Link Layer |
+-------------------|. . . . . . . . .+-------------------|
| | | |
| Physical Control | | Physical Control |
+-------------------| +-------------------|
QLLC
QLLC is designed to allow adjacent SNA nodes to connect via a
X.25 network. QLLC carries SDLC unnumbered commands as user data
in data packets with Q-bit=1 (Q packets).
Qualified Data Packet Formats
8 7 6 5 4 3 2 1 0
+--------------------------------------------------------------------
| | |
| General Format Identifier GFI | Logical channel group num |
+--------------------------------------------------------------------|
| |
| Logical Channel Number |
+--------------------------------------------------------------------|
| | | | |
| P(r) | M | P(s) | 0 |
+---------------------+---------+---------------------------+--------|
| |
| QLLC Address Field (coded 'FF' for commands 'NOT FF' for responses)|
+--------------------------------------------------------------------|
| |
| QLLC Control Field |
+--------------------------------------------------------------------|
| |
| QXID/QTEST/QFRMR information field - optional |
+--------------------------------------------------------------------|
QLLC | C-Field | I-Field | Primary | Secondary | Peer-to-peer | |
Function | Hex | Allowed | command | response | Command | Response |
Octet 1 | ||||||
QSM | 93 | NO | x | x | ||
QDISC | 53 | NO | x | x | ||
QXID | BF | YES | x | x | ||
QTEST | F3 | YES | x | x | ||
QRR | F1 | NO | x | x | ||
QRD | 53 | NO | x | |||
QXID | BF | YES | x | x | ||
QTEST | F3 | YES | x | x | ||
QUA | 73 | NO | x | x | ||
QDM | 1F | NO | x | x | ||
QFRMR | 97 | YES | x | x |
CALL USER DATA FORMAT
byte | QLLC | ELLC | PSH |
0 Protocol Identifier | C3 | C6 | C2 |
1 Field Format Identifier | FFI | FFI | FFI |
2 ELLC call control indicator | CCI | ||
3 Reserved | |||
4 | |||
. Connection Identifier | |||
11 | |||
Format of FFI . . | optional and when present defines the remainder of the CUD field. | ||
Format of CCI . . | x x x x x x x I/R | ||
0=initial connection | |||
1=connection recovery | |||
Format of CI . . | eight byte in length and permits DTEs to accept or reject incoming calls based on its content. |
REQUEST UNITS
RU NAME | request code or RU hdr | Origin --_ Destination NAU | Flow | RU category |
ABCONN | 01020F | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
ABCONNOUT | 010218 | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
ACTCDRM | 14 | SSCP--_SSCP | EXP | SC |
ACTCONNIN | 010216 | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
ACTLINK | 01020A | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
ACTLU | 0D | SSCP--_LU | EXP | SC |
ACTPU | 11 | SSCP--_PU | EXP | SC |
PUCP--_PU | ||||
ACTTRACE | 010302 | SSCP--_PU | NORM | FMD NS(MA) |
ADDLINK | 41021E | SSCP--_PU4/5 | NORM | FMD NS(C) |
ADDLINKSTA | 410221 | SSCP--_PU4/5 | NORM | FMD NS(C) |
ANA | 010219 | SSCP--_PU4/5 | NORM | FMD NS(C) |
BID | C8 | LU --_LU | NORM | DFC |
BIND | 31 | PLU --_SLU | EXP | SC |
BINDF | 810685 | PLU --_SSCP | NORM | FMD NS(S) |
BIS | 70 | LU --_LU | NORM | DFC |
CANCEL | 83 | LU --_LU | NORM | DFC |
CDCINIT | 81864B | SSCP--_SSCP | NORM | FMD NS(S) |
CDINIT | 818641 | SSCP--_SSCP | NORM | FMD NS(S) |
CDSESSEND | 818648 | SSCP--_SSCP | NORM | FMD NS(S) |
CDSESSSF | 818645 | SSCP--_SSCP | NORM | FMD NS(S) |
CDSESSST | 818646 | SSCP--_SSCP | NORM | FMD NS(S) |
CDSESSTF | 818647 | SSCP--_SSCP | NORM | FMD NS(S) |
CDTAKED | 818649 | SSCP--_SSCP | NORM | FMD NS(S) |
CDTAKEDC | 81864A | SSCP--_SSCP | NORM | FMD NS(S) |
CDTERM | 818643 | SSCP--_SSCP | NORM | FMD NS(S) |
CHASE | 84 | LU --_LU | NORM | DFC |
CINIT | 810601 | SSCP--_PLU | NORM | FMD NS(S) |
CLEANUP | 810629 | SSCP--_PLU | NORM | FMD NS(S) |
SSCP--_SLU | ||||
CLEAR | A1 | PLU --_SLU | EXP | SC |
SSCP--_SSCP | ||||
CONNOUT | 01020E | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
CONTACT | 010201 | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
CONTACTED | 010280 | PU4/5--_SSCP | NORM | FMD NS(C) |
PU --_PUCP | ||||
CRV | C0 | PLU --_SLU | EXP | SC |
CTERM | 810602 | SSCP--_PLU | NORM | FMD NS(S) |
DACTCDRM | 15 | SSCP--_SSCP | EXP | SC |
DACTCONNIN | 010217 | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
DACTLINK | 01020B | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
DACTLU | 0E | SSCP--_LU | EXP | SC |
DACTPU | 12 | SSCP--_PU | EXP | SC |
PUCP--_PU | ||||
PU --_SSCP | ||||
DACTTRACE | 010303 | SSCP--_PU | NORM | FMD NS(MA) |
DELETENR | 41021C | SSCP--_PU4/5 | NORM | FMD NS (C) |
DISCONTACT | 010202 | SSCP--_PU4/5 | NORM | FMD NS(C) |
PUCP--_PU | ||||
DISPSTOR | 010331 | SSCP--_PU4/5 | NORM | FMD NS (MA) |
DSRLST | 818627 | SSCP--_SSCP | NORM | FMD NS (S) |
DUMPFINAL | 010208 | SSCP--_PU4/5 | NORM | FMD NS(C) |
DUMPINIT | 010206 | SSCP--_PU4/5 | NORM | FMD NS(C) |
DUMPTEXT | 010207 | SSCP--_PU4/5 | NORM | FMD NS(C) |
ECHOTEST | 810389 | SSCP--_LU | NORM | FMD NS (MA) |
ER-INOP | 41021D | PU4/5--_SSCP | NORM | FMD NS(C) |
PU4 --_PUCP | ||||
ER-TESTED | 410386 | PU4/5--_SSCP | NORM | FMD NS(MA) |
ESLOW | 010214 | PU4 --_SSCP | NORM | FMD NS(C) |
EXECTEST | 010301 | SSCP --_PU4/5 | NORM | FMD NS(MA) |
EXSLOW | 010215 | PU4 --_SSCP | NORM | FMD NS(C) |
FNA | 01021A | SSCP --_PU4/5 | NORM | FMD NS(C) |
INIT-OTHER | 810680 | ILU --_SSCP | NORM | FMD NS(S) |
INIT-OTHER-CD | 818640 | SSCP --_SSCP | NORM | FMD NS(S) |
INITPROC | 410235 | SSCP --_PU4/5 | NORM | FMD NS(C) |
INIT-SELF | 010681 | ILU --_SSCP | NORM | FMD NS(S) |
INOP | 010281 | PU4/5--_SSCP | NORM | FMD NS(C) |
PU --_PUCP | ||||
ILPFINAL | 010205 | SSCP--_PU4/5 | NORM | FMD NS(C) |
IPLINIT | 010203 | SSCP--_PU4/5 | NORM | FMD NS(C) |
IPLTEXT | 010204 | SSCP--_PU4/5 | NORM | FMD NS(C) |
LCP | 410287 | PU4/5--_SSCP | NORM | FMD NS(C) |
PU4 --_PUCP | ||||
LDREQD | 410237 | PU2 --_SSCP | NORM | FMD NS(C) |
LSA | 05 | PU4/5--_PU4/5 | EXP | NC |
LUSTAT | 04 | LU --_LU | NORM | DFC |
LU --_SSCP | ||||
NC-ACTVR | 0D | PU4/5--_PU4/5 | NC | |
NC-DACTVR | 0E | PU4/5--_PU4/5 | NC | |
NC-ER-ACT | 0B | PU4/5--_PU4/5 | NC | |
NC-ER-ACT-REPLY | 0C | PU4/5--_PU4/5 | NC | |
N--ER-INOP | 06 | PU4/5--_PU4/5 | NC | |
NC-ER-OP | 0F | PU4/5--_PU4/5 | NC | |
NC-ER-TEST | 09 | PU4/5--_PU4/5 | NC | |
NC-ER-TEST-REPLY | 0A | PU4/5--_PU4/5 | NC | |
NC-IPL-ABORT | 46 | PU4/5--_PU2 | NC | |
NC-IPL-FINAL | 02 | PU4/5--_PU2 | NC | |
NC-IPL-INIT | 03 | PU4/5--_PU2 | NC | |
NC-IPL-TEXT | 04 | PU4/5--_PU2 | NC | |
NMVT | 41038D | SSCP _-_PU2 | NORM | FMD NS(MA) |
SSCP _-_PU4/5 | ||||
NOTIFY | 410220 | SSCP _-_PU | NORM | FMD NS(C) |
NOTIFY | 810620 | SSCP--_LU | NORM | FMD NS(S) |
SSCP--_SSCP | ||||
NOTIFY | 818620 | SSCP--_SSCP | NORM | FMD NS(S) |
NS-IPL-ABORT | 410246 | SSCP--_PU2 | NORM | FMD NS(C) |
NS-IPL-FINAL | 410245 | SSCP--_PU2 | NORM | FMD NS(C) |
NS-IPL-INIT | 410243 | SSCP--_PU2 | NORM | FMD NS(C) |
NS-IPL-TEXT | 410244 | SSCP--_PU2 | NORM | FMD NS(C) |
NS-LSA | 010285 | PU4/5--_SSCP | NORM | FMD NS(C) |
NSPE | 010604 | SSCP--_ILU | NORM | FMD NS(S) |
PROCSTAT | 410236 | PU4/5--_SSCP | NORM | FMD NS(C) |
QEC | 80 | LU --_LU | EXP | DFC |
RECFMS | 410384 | PU --_SSCP | NORM | FMD NS(MA) |
RECMS | 010381 | PU4/5--_SSCP | NORM | FMD NS(MA) |
RECSTOR | 010334 | PU4/5--_SSCP | NORM | FMD NS(MA) |
RECTD | 010382 | PU4/5--_SSCP | NORM | FMD NS(MA) |
RECTR | 410385 | PU4/5--_SSCP | NORM | FMD NS(MA) |
RECTRD | 010383 | PU --_SSCP | NORM | FMD NS(MA) |
RELQ | 82 | LU --_ LU | EXP | DFC |
REQACTCDRM | 41028A | PU --_SSCP | EXP | FMD NS |
REQACTLU | 410240 | PU4/5--_SSCP | NORM | FMD NS(C) |
REQCONT | 010284 | PU4/5--_SSCP | NORM | FMD NS(C) |
PU --_PUCP | ||||
REQDISCONT | 01021B | PU1/2--_SSCP | NORM | FMD NS(C) |
REQECHO | 810387 | LU --_SSCP | NORM | FMD NS(MA) |
REQFNA | 410286 | PU4/5--_SSCP | NORM | FMD NS(C) |
REQMS | 410304 | SSCP --_PU | NORM | FMD NS(MA) |
RNAA | 410210 | SSCP --_PU4/5 | NORM | FMD NS(C) |
ROUTE-INOP | 410289 | PU --_SSCP | NORM | FMD NS(C) |
ROUTE-TEST | 410307 | SSCP --_PU4/5 | NORM | FMD NS(MA) |
RPO | 010209 | SSCP --_PU4/5 | NORM | FMD NS(C) |
RQR | A3 | SLU --_PLU | EXP | SC |
SSCP --_SSCP | ||||
RSHUTD | C2 | SLU --_PLU | EXP | DFC |
RTR | 05 | LU --_LU | NORM | DFC |
SBI | 71 | LU --_LU | EXP | DFC |
SDT | A0 | PLU --_SLU | EXP | SC |
SSCP --_PU | ||||
SSCP --_SSCP | ||||
SESSEND | 810688 | LU --_SSCP | NORM | FMD NS(S) |
SESSST | 810686 | LU --_SSCP | NORM | FMD NS(S) |
SETCV | 010211 | SSCP --_PU4/5 | NORM | FMD NS(C) |
SETCV | 010311 | SSCP --_PU4/5 | NORM | FMD NS(MA) |
SHUTC | C1 | SLU --_ PLU | EXP | DFC |
SHUTD | C0 | PLU --_ SLU | EXP | DFC |
SIG | C9 | LU --_ LU | EXP | DFC |
STSN | A2 | PLU --_ SLU | EXP | SC |
TERM-OTHER | 810682 | TLU --_SSCP | NORM | FMD NS(S) |
TERM-SELF | 010683 | TLU --_SSCP | NORM | FMD NS(S) |
TESTMODE | 410305 | SSCP--_PU4/5 | NORM | FMD NS(MA) |
UNBIND | 32 | LU --_ LU | EXP | SC |
UNBINDF | 810687 | PLU --_SSCP | NORM | NS(S) |
VR-INOP | 410223 | PU4/5--_SSCP | NORM | FMD NS(C) |
PU4 --_PUCP |
RESPONSE UNITS
Apart from the excepions cited below, response units return the
number of bytes specified in the following table; only enough
of the request unit is returned to include the field-formatted
request code or NS header.
RU category of response | Number of bytes |
DFC | 1 |
SC | 1 |
NC | 1 |
FMD NS (FI=1) - field-formatted | 3 |
FMD NS (FI=0) - character-coded | 0 |
FMD (LU-LU) | 0 |
All negative responses return four bytes of sense data in the RU, followed by either:
- The number of bytes specified in the table above, or
- Three bytes (or the entire request unit, if shorter than 3 bytes)
RU NAME | request code or RU hdr | Origin --_ Destination NAU | Flow | RU category |
RSP(ACTDRM) | 14 | SSCP--_SSCP | EXP | SC |
RSP(ACTLU) | 0D | LU --_SSCP | EXP | SC |
RSP(ACT | 11 | PU --_SSCP | EXP | SC |
RSP(ADDLINK) | 41021E | PU4/5--_SSCP | NORM | FMD NS(C) |
RSP(ADDLINKSTA) | 410221 | PU4/5--_SSCP | NORM | FMD NS(C) |
RSP(BIND) | 31 | SLU --_PLU | EXP | SC |
RSP(CDINIT) | 818641 | SSCP--_SSCP | NORM | FMD NS(S) |
RSP(CDTERM) | 818643 | SSCP--_SSCP | NORM | NS(S) |
RSP(CINIT) | 810601 | PLU --_SSCP | NORM | FMD NS(S) |
RSP(DSRLST) | 818627 | SSCP--_SSCP | NORM | NS(S) |
RSP(DUMPINIT) | 010206 | PU4/5--_SSCP | NORM | FMD NS(C) |
RSP(DUMPTEXT) | 010207 | PU4/5--_SSCP | NORM | FMD NS(C) |
RSP(INIT-OTHER-CD) | 818640 | SCP--_SSCP | NORM | FMD NS(S) |
RSP(RNAA) | 410210 | PU4/5--_SSCP | NORM | FMD NS(C) |
RSP(ROUTE-TEST) | 410307 | PU4/5--_SSCP | NORM | FMD NS(MA) |
RSP(STSN) | A2 | SLU --_ PLU | EXP | SC |