|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
SCKBK
Control Block Contents
SCKBK DSECT
SCKARY DSECT
Cross Reference (Contains links to field and bit definitions)
SCKBK Prolog
NAME : HCPSCKBK
DESCRIPTION: Socket control block
DSECT : SCKBK
FUNCTION :
This structure defines the ISFC socket structure.
The socket is used for service communications between
different nodes.
LOCATED BY :
Anchored at HCPHSHSK. Use HCPGAL routines to look up a
socket by PORT or run the list of sockets in KCMSCKBK and/or
KCMUBSCK
CREATED BY :
See HCPKCS and the HCPSOCK macro.
(HCPKCSCR, HCPKCSCP, HCPKCSCC, HCPKCSCS)
DELETED BY :
See HCPKCS and the HCPSOCK macro.
(HCPKCSCL)
SERIALIZED :
See HCPKCMBK for lock hierarchy rules.
The SCKBK chain is serialized by KCMSCKLK.
Fields in the SCKBK are serialized by SCKLKWRD unless
otherwise noted.
RELOCATION CONSIDERATIONS : None
NOTES :
SCKBK Control Block Content
SCKBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure SCKBK Socket control block
SCKPORT must be the first element in this structure. The
SCKBKs are stored in a hash table (HCPHSHSK) and the key is
SCKPORT. The address returned from the hash table lookups
will be the address of SCKPORT. By keeping SCKPORT as the
first element, we ensure that we have the address of the
SCKBK as well.
0000 0 Character 8 SCKPORT Socket Port/address/Service ID
0008 8 Signed 4 SCKID (0) Socket ID
0008 8 Signed 2 SCKINDEX Socket array index
000A 10 Signed 2 SCKINSTN Instance number
000C 12 Signed 4 SCKNUM Socket Number
0010 16 Dbl-Word 8 SCKCTOD Creation TOD clock
0018 24 Address 4 SCKFPTR Pointer to next Socket
001C 28 Address 4 SCKBPTR Pointer to previous Socket
0020 32 Character 32 SCKNAME Socket Name
0040 64 Signed 4 SCKNLEN Length of Socket Name
0044 68 Bitstring 1 SCKSTAT Socket Status
00000000 SCKIDLE 0 SCKIDLE Socket is idle
00000001 SCKRECPN 1 SCKRECPN Socket is pending
receive
00000002 SCKSEND 2 SCKSEND Socket is sending
00000003 SCKDELIP 3 SCKDELIP Delete in progress
00000004 SCKWCNT 4 SCKWCNT Waiting; Connection
initiated
00000005 SCKACPLP 5 SCKACPLP Waiting; Accept
suspended
00000006 SCKCNFLD 6 SCKCNFLD Connection Failed
00000007 SCKCLPND 7 SCKCLPND Close Pending
0045 69 Bitstring 1 SCKFLAGS Flags
1... .... SCKBIND X'80' SCKBIND Explicit Bind done
.1.. .... SCKSNAME X'40' SCKSNAME Explicit SETNAME
done
..1. .... SCKLSTN X'20' SCKLSTN Listen mode set
...1 .... SCKCNET X'10' SCKCNET Connected Socket
.... ..1. SCKPNDCL X'02' SCKPNDCL Close Pending
0046 70 Bitstring 1 SCKFLAG2 Flags
1... .... SCKLCLSE X'80' SCKLCLSE Closed locally
.1.. .... SCKRCLSE X'40' SCKRCLSE Closed remotely
..1. .... SCKINCNT X'20' SCKINCNT Initiated
connection - debug info
...1 .... SCKACSCK X'10' SCKACSCK Socket created on
accept (special)
.... 1... SCKLTMSG X'08' SCKLTMSG Message lost;
Socket should close
0047 71 Bitstring 1 SCKTYPE Socket type
00000000 SCK_LISTEN 0 SCK_LISTEN Listening socket
(accept only)
00000001 SCK_STREAM 1 SCK_STREAM Streaming Socket
00000002 SCK_DGRAM 2 SCK_DGRAM Datagram Socket
0048 72 Signed 4 SCKLIMIT Limit for connections
004C 76 Signed 4 SCKMASK VMPLEX Node Mask
0050 80 Address 4 SCKVMDBK VMDBK used for creation
0054 84 Address 4 SCKRXQUE Queue of received message (if out
of order condition occurs)
The SCKILOCK is an integrity lock to serialize the creation
and destruction of a socket. See HCPKCD to follow the
lock flow for creation and destruction of a socket.
This lock is used as a reference counter for the SCKBK.
The lock heirarchy for this lock and others can be found
in HCPKCMBK.
0058 88 Dbl-Word 8 SCKILOCK (3) Integrity Socket Lock Word
The SCKLKWRD serializes the changes to the socket structure.
The KCMSCKLK serializes the changes to the HCPHSHSK. To
make changes to both the hash table and the socket, the locks
have to be obtained in this order:
(1) KCMSCKLK
(2) SCKLKWRD
Changes requiring an addition or deletion from the HCPHSHSK
require EXCLUSIVE locks. See HCPKCMBK COPY for more info.
0070 112 Dbl-Word 8 SCKLKWRD (3) Socket Lock word - general work
0088 136 Dbl-Word 8 * (3) Reserved
00000006 SCKQSIZ 6 The size of SCKQUEBK for
BLOCKMAP is 48
00A0 160 Dbl-Word 8 SCKQUEBK (6) Socket QUEBK for input messages
Serialized by Compare and Swap in
HCPQMX routines.
00D0 208 Signed 4 SCKMSGID Socket MSGID field Serialized by
Compare and Swap using HCPCOUNT
INTERLOCK
00D4 212 Signed 4 SCKCHAIN Chain of control messages
00D8 216 Dbl-Word 8 SCKACTOD TOD of last accept
00E0 224 Address 4 SCKCNRQU Queue of connection requests
waiting on an ACCEPT
00E4 228 Signed 4 SCKCNNUM # of queued connection requests
Serialized by Compare and Swap
using HCPCOUNT INTERLOCK
00E8 232 Character 8 SCKASSOC Associated Socket
00F0 240 Dbl-Word 8 SCKRECV (0) HCPSOCK Receive structure
Serialized by Compare and Swap
00F0 240 Signed 4 SCKIQCTR Count of messages in SCKQUEBK
00F4 244 Address 4 SCKREECB Pointer to ECBBK for receive
00F8 248 Address 4 SCKOQUHD Head Ptr to output queue
00FC 252 Address 4 SCKOQUTL Tail Ptr to output queue
0100 256 Address 4 SCKECBBK Pointer to ECBBK for connection
0104 260 Address 4 SCKACECB Pointer to ECBBK for accept loop
0108 264 Character 4 * Reserved for IBM use
010C 268 Address 4 SCKCLOSE Pointer to ECBBK for close
0110 272 Address 4 SCKRCECB Pointer to ECBBK for recover msg
Message storage
0114 276 Address 4 SCKRCVR Ptr to msgs for recovery
Chain of messages waiting on a reply
0118 280 Address 4 SCKRPND Ptr to MBRBKS (waiting on reply)
Message id used to determine if messages have arrived out
of order on a connected socket.
011C 284 Signed 4 SCKRMSID Socket receive MSGID field
Serialized by Compare and Swap
using HCPCOUNT INTERLOCK
0120 288 Signed 2 SCKCNTMO Counter for timing out connect
requests, and to track delayed
close requests.
0122 290 Bitstring 1 SCKPRIOR Socket priority See HCPSOCPL for
codes defined for SCKPRIOR.
0123 291 Bitstring 1 * Reserved
0124 292 Signed 4 * Reserved
0128 296 Character 16 SCKTGT (0) Target if Connected/blank if not
0128 296 Character 8 SCKTGTND Target Node ID
0130 304 Character 8 SCKTGTSV Target Service/port
0138 312 Dbl-Word 8 SCKCTRS (0)
0138 312 Dbl-Word 8 SCKRXMSG Count of messages received
0140 320 Dbl-Word 8 SCKTXMSG Count of messages transmitted
0148 328 Dbl-Word 8 SCKRXDSC Count of messages discarded (RX)
0150 336 Dbl-Word 8 SCKTXDSC Count of messages discarded (TX)
Serialized by Compare and Swap
using HCPCOUNT INTERLOCK
0158 344 Dbl-Word 8 SCKRXBYT Count of bytes received
0160 352 Dbl-Word 8 SCKTXBYT Count of bytes transmitted
Counts of messages that are buffered.
SCKTXBUF is the # of messages that are queued waiting on
a RECOVER_MSG to be issued. These are messages that have
been sent via SEND_QUEUED. This will be displayed in the
Q ISFC SOCKETS output.
0168 360 Character 8 * Reserved for IBM use
0170 368 Dbl-Word 8 SCKTXBUF Count of messages buffered (TX)
Serialized by Compare and Swap
using HCPCOUNT INTERLOCK
0178 376 Dbl-Word 8 SCKOUTSD Count of outstanding sends These
are sends that have not yet gone
across the link.
0180 384 Dbl-Word 8 SCKTHROT Count of times throttled
Serialized by Compare and Swap
using HCPCOUNT INTERLOCK
00000050 SCKCTRLN *-SCKCTRS
0188 392 Signed 4 SCKMWAIT Count of times RECV waited
018C 396 Signed 4 SCKMOOO Count of message arriving out of
order
0190 400 Signed 4 SCKRXQCT Current count of msgs on SCKRXQUE
0194 404 Signed 4 *
0198 408 Dbl-Word 8 * Reserved for IBM use
000001A0 SCKEND * End of Socket control block
000001A0 SCKBKLN *-SCKBK Length of typical SCKBK
00000034 SCKBKSZ (SCKBKLN+7)/8 Size of typical
SCKBK (dblwords)
MRSOCISC PLXCOPY monitor record.
MRMTRISC PLXCOPY monitor record.
Mapping for entry in socket array
SCKARY DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure SCKARY Socket control block 0000 0 Address 4 SCKARY_ADDR Address of SCKBK 0004 4 Signed 2 SCKARY_CINST Current instance number 0006 6 Bitstring 1 SCKARY_FLAG Array flag byte 1... .... SCKARY_INVHN X'80' SCKARY_INVHN Handle is not valid 0007 7 Bitstring 1 * Reserved 00000008 SCKARLN (*-SCKARY) Size of array entry 00000001 SCKARSZ (SCKARLN+7)/8 Size of array entry in DWs
SCKBK Storage Layout
*** SCKBK - Socket control block
*
* +-------------------------------------------------------+
* 0 | SCKPORT |
* +-------------+-------------+---------------------------+
* 8 | SCKINDEX | SCKINSTN | SCKNUM |
* +-------------+-------------+---------------------------+
* 10 | SCKCTOD |
* +---------------------------+---------------------------+
* 18 | SCKFPTR | SCKBPTR |
* +---------------------------+---------------------------+
* 20 | |
* = SCKNAME =
* | |
* +---------------------------+------+------+------+------+
* 40 | SCKNLEN |:STAT |:FLAGS|:FLAG2|:TYPE |
* +---------------------------+------+------+------+------+
* 48 | SCKLIMIT | SCKMASK |
* +---------------------------+---------------------------+
* 50 | SCKVMDBK | SCKRXQUE |
* +---------------------------+---------------------------+
* 58 | |
* = SCKILOCK =
* | |
* +-------------------------------------------------------+
* 70 | |
* = SCKLKWRD =
* | |
* +-------------------------------------------------------+
* 88 |///////////////////////////////////////////////////////|
* =///////////////////////////////////////////////////////=
* |///////////////////////////////////////////////////////|
* +-------------------------------------------------------+
* A0 | |
* = SCKQUEBK =
* | |
* +---------------------------+---------------------------+
* D0 | SCKMSGID | SCKCHAIN |
* +---------------------------+---------------------------+
* D8 | SCKACTOD |
* +---------------------------+---------------------------+
* E0 | SCKCNRQU | SCKCNNUM |
* +---------------------------+---------------------------+
* E8 | SCKASSOC |
* +---------------------------+---------------------------+
* F0 | SCKIQCTR | SCKREECB |
* +---------------------------+---------------------------+
* F8 | SCKOQUHD | SCKOQUTL |
* +---------------------------+---------------------------+
* 100 | SCKECBBK | SCKACECB |
* +---------------------------+---------------------------+
* 108 |///////////////////////////| SCKCLOSE |
* +---------------------------+---------------------------+
* 110 | SCKRCECB | SCKRCVR |
* +---------------------------+---------------------------+
* 118 | SCKRPND | SCKRMSID |
* +-------------+------+------+---------------------------+
* 120 | SCKCNTMO |:PRIOR|//////|///////////////////////////|
* +-------------+------+------+---------------------------+
* 128 | SCKTGTND |
* +-------------------------------------------------------+
* 130 | SCKTGTSV |
* +-------------------------------------------------------+
* 138 | SCKRXMSG |
* +-------------------------------------------------------+
* 140 | SCKTXMSG |
* +-------------------------------------------------------+
* 148 | SCKRXDSC |
* +-------------------------------------------------------+
* 150 | SCKTXDSC |
* +-------------------------------------------------------+
* 158 | SCKRXBYT |
* +-------------------------------------------------------+
* 160 | SCKTXBYT |
* +-------------------------------------------------------+
* 168 |///////////////////////////////////////////////////////|
* +-------------------------------------------------------+
* 170 | SCKTXBUF |
* +-------------------------------------------------------+
* 178 | SCKOUTSD |
* +-------------------------------------------------------+
* 180 | SCKTHROT |
* +---------------------------+---------------------------+
* 188 | SCKMWAIT | SCKMOOO |
* +---------------------------+---------------------------+
* 190 | SCKRXQCT |///////////////////////////|
* +---------------------------+---------------------------+
* 198 |///////////////////////////////////////////////////////|
* +-------------------------------------------------------+
* 1A0
*
*** SCKBK - Socket control block
*** SCKARY - Socket control block
*
* +---------------------------+-------------+------+------+
* 0 | SCKARY_ADDR |SCKARY_CINST |(006) |//////|
* +---------------------------+-------------+------+------+
* 8
*
*** SCKARY - Socket control block
SCKBK Cross Reference
Symbol Dspl Value -------------- ---- ----- SCK_DGRAM 0047 00000002 SCK_LISTEN 0047 00000000 SCK_STREAM 0047 00000001 SCKACECB 0104 SCKACPLP 0044 00000005 SCKACSCK 0046 10 SCKACTOD 00D8 SCKARLN 0007 00000008 SCKARSZ 0007 00000001 SCKARY_ADDR 0000 SCKARY_CINST 0004 SCKARY_FLAG 0006 SCKARY_INVHN 0006 80 SCKASSOC 00E8 SCKBIND 0045 80 SCKBKLN 0198 000001A0 SCKBKSZ 0198 00000034 SCKBPTR 001C SCKCHAIN 00D4 SCKCLOSE 010C SCKCLPND 0044 00000007 SCKCNET 0045 10 SCKCNFLD 0044 00000006 SCKCNNUM 00E4 SCKCNRQU 00E0 SCKCNTMO 0120 SCKCTOD 0010 SCKCTRLN 0180 00000050 SCKCTRS 0138 SCKDELIP 0044 00000003 SCKECBBK 0100 SCKEND 0198 000001A0 SCKFLAGS 0045 SCKFLAG2 0046 SCKFPTR 0018 SCKID 0008 SCKIDLE 0044 00000000 SCKILOCK 0058 SCKINCNT 0046 20 SCKINDEX 0008 SCKINSTN 000A SCKIQCTR 00F0 SCKLCLSE 0046 80 SCKLIMIT 0048 SCKLKWRD 0070 SCKLSTN 0045 20 SCKLTMSG 0046 08 SCKMASK 004C SCKMOOO 018C SCKMSGID 00D0 SCKMWAIT 0188 SCKNAME 0020 SCKNLEN 0040 SCKNUM 000C SCKOQUHD 00F8 SCKOQUTL 00FC SCKOUTSD 0178 SCKPNDCL 0045 02 SCKPORT 0000 SCKPRIOR 0122 SCKQSIZ 0088 00000006 SCKQUEBK 00A0 SCKRCECB 0110 SCKRCLSE 0046 40 SCKRCVR 0114 SCKRECPN 0044 00000001 SCKRECV 00F0 SCKREECB 00F4 SCKRMSID 011C SCKRPND 0118 SCKRXBYT 0158 SCKRXDSC 0148 SCKRXMSG 0138 SCKRXQCT 0190 SCKRXQUE 0054 SCKSEND 0044 00000002 SCKSNAME 0045 40 SCKSTAT 0044 SCKTGT 0128 SCKTGTND 0128 SCKTGTSV 0130 SCKTHROT 0180 SCKTXBUF 0170 SCKTXBYT 0160 SCKTXDSC 0150 SCKTXMSG 0140 SCKTYPE 0047 SCKVMDBK 0050 SCKWCNT 0044 00000004
Copyright IBM Corporation, 1990, 2011