|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
NICBK
Control Block Contents
NICBK DSECT
Cross Reference (Contains links to field and bit definitions)
NICBK Prolog
NAME : HCPNICBK
DESCRIPTION: Virtual Network Interface Card block
DSECT : NICBK
FUNCTION :
Define a structure to represent a Network Interface
Card. One NICBK exists for each Virtual Adapter.
Each NICBK is associated with a set of Virtual
Network Interface Devices (VDEV/NIDBK).
LOCATED BY -
VDEVNIC = Pointer to owning adapter NICBK
NIDNICBK = Pointer to owning adapter NICBK
LNKNICHD = Pointer to chain of coupled adapter NICBK
CREATED BY :
CP DEFINE command processing (module HCPVDB)
DELETED BY :
CP DETACH command processing (module HCPVDB)
REFERENCES :
HCPDVTYP COPY - Specific device types
HCPEQUAT COPY - General CP equates
Comments :
- Exist in the system execution space.
- Not known by Hardware.
- See Serialization comments in the Assembler section.
NICBK Control Block Content
NICBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure NICBK Virtual Network Interface Card
block
Static Area -
The fields in this area are relatively constant.
They are initialized when the adapter (NIC) is
created, and may be referenced with minimal
serialization (just enough to be sure your pointer
to the NICBK is valid).
0000 0 Character 8 NICDESC NIC Description (e.g. HIPER)
0008 8 Character 8 NICOWNER NIC Owner VM Userid
0010 16 Signed 2 NICBASE NIC Base Virtual Device Address
0012 18 Signed 2 NICLAST NIC Last Virtual Device Address
0014 20 Signed 2 NICDEVS NIC Device Count
0016 22 Bitstring 1 NICTYPE Network Device Type
00000001 NICHIPR 1 NICHIPR HiperSockets adapter
type
00000002 NICQDIO 2 NICQDIO QDIO adapter type
00000003 NICVSW 3 NICVSW QDIO VSWITCH connection
0017 23 Bitstring 1 NICTRANP Transport type
00000001 NICIP 1 NICIP Layer 3 IP datagrams
00000002 NICETHER 2 NICETHER Layer 2 Ethernet
frames
00000003 NICUNKWN 3 NICUNKWN Unknown NIC type -
never coupled
0018 24 Bitstring 2 NICCUTYP Simulated Control Unit Type
001A 26 Bitstring 1 NICCUMDL Simulated Control Unit Model
001B 27 Bitstring 2 NICDVTYP Simulated Device Type
001D 29 Bitstring 1 NICDVMDL Simulated Device Model
001E 30 Bitstring 1 NICCHPTP CHPID type for this adapter
001F 31 Bitstring 1 NICCHPID CHPID for this adapter
0020 32 Address 4 NICVDEV Host logical Addr of Base VDEV
0024 36 Signed 4 NICMFS MFS (bytes) for current LAN
0028 40 Bitstring 6 NICMAC MAC Address for this adapter
002E 46 Bitstring 2 NICTKUID Latest unique token id
0030 48 Address 4 NICTKLST List of Unique Tokens HL @ of
chain of TKNBKs (See HCPIPY)
NICVLANS represents the Authorized VID set.
When NICVLANS==NULL it means the switch simulation
does not restrict the virtual NIC to any specific
VID set.
When NICVLANS==nonzero it points to the DVLHEAD
structure representing the Authorized VID set for
this virtual NIC on this virtual switch.
0034 52 Address 4 NICVLANS Pointer to list of VLAN groups
0038 56 Signed 2 NICVLCTR Size of Authorized VID set
003A 58 Signed 2 NIC_VIDINST Authorized VLAN instance
003C 60 Address 4 NICVLCPT Pointer to cached VLCBK
NIC Adapter Lock -
Notes : LKWRDSIZ == 3 doublewords.
0040 64 Dbl-Word 8 NICLKWRD (3) Adapter Lockword
Adapter Management Area -
The fields in this area are used in the normal
operation of the adapter (NIC). In general,
these fields are serialized by the NIC Adapter Lock:
- Hold NICLKWRD EXCLUSIVE to update
- Hold NICLKWRD SHARED to reference
NICRFCTR is used to protect the NICBK over a stacked call.
- NICRFCTR is updated using Compare and Swap (CS) logic.
- NICLKWRD (Shared or Exclusive) must be held, or
LANLKWRD (Shared or Exclusive) must be held to update
NICRFCTR.
- The code that intends to initiate a deferred (stacked)
call must increment NICRFCTR (using CS logic).
- The code that is dispatched asynchronously should
perform the following steps:
(1) Obtain NICLKWRD (Shared or Exclusive)
(2) Decrement NICRFCTR (using CS logic).
(3) If NICDLPRG=1 (Delete in Progress),
If NICRFCTR = 0,
Obtain NICLKWRD Exclusive (see HCPLCKSX).
Call HCPNICDX to Destroy this NICBK.
Exit without attempting to release NICLKWRD.
If NICRFCTR > 0,
Release NICLKWRD and exit.
0058 88 Signed 4 NICRFCTR Outstanding Reference count
005C 92 Bitstring 1 NICCFLG Adapter Configuration flags
1... .... NICINPRG X'80' NICINPRG Initialization in
Progress
.1.. .... NICDLPRG X'40' NICDLPRG Delete in Progress
..1. .... NICCNLAN X'20' NICCNLAN Connected to a
SYSTEM LAN
...1 .... NICPVLAN X'10' NICPVLAN Connected to a
PRIVATE LAN
.... 1... NICREADY X'08' NICREADY LAN READY
.... .1.. NICROUTR X'04' NICROUTR NETROUTER is set
(USER DIRECT)
.... ..1. NICPAUT X'02' NICPAUT Promiscuous Mode
Authority
005D 93 Bitstring 1 NICVLFLG VLAN attribute flags
1... .... NICVLGBL X'80' NICVLGBL Global VLAN
(NICPVID) is set
.1.. .... NICVLUSR X'40' NICVLUSR User selects from
NICVLANS list
..1. .... NICVLFLT X'20' NICVLFLT Filter by VID set
...1 .... NICVLNON X'10' NICVLNON No VLAN capability
005E 94 Signed 2 NICPVID Port VLAN ID
0060 96 Address 4 NICNIDHD Host logical address of the first
NIDBK, chained by NIDFPNT/NIDBPNT
0064 100 Address 4 NICNIDTL HL @ of the last NIDBK
0068 104 Signed 4 NICMGPOR Port number
006C 108 Signed 4 NICMGIFI ifIndex number
Device Specific Area -
0070 112 Bitstring 1 NICQDFMT QDIO Queue Format
0071 113 Bitstring 1 NICVPORT Virtual Port attributes
00000000 NICVPORT_NONE 0 NICVPORT_NONE = Disabled
00000001 NICVPORT_ACCESS
1 NICVPORT_ACCESS = Access Port
(untagged)
00000002 NICVPORT_TRUNK 2 NICVPORT_TRUNK = Trunk Port
(tagged or mix
0072 114 Bitstring 1 NICAFLG Authorization flags
1... .... NICAUTHX X'80' NICAUTHX Authorized by the
ESM
0073 115 Bitstring 9 NICADPTK (0) Adapter Name : Length||Token
0073 115 Bitstring 1 NICADPNL Length of NICADPNM Token
0074 116 Character 8 NICADPNM Adapter Name Token
007C 124 Signed 4 NICMPCCT Count of established MPC groups
0080 128 Address 4 NICMPCHD Host logical address of the first
MPCBK, chained by MPCNEXT/MPCPREV
0084 132 Address 4 NICMPCTL HL @ of the last MPCBK
0088 136 Signed 2 NICMAXIQ Maximum INPUT Queues per MPC
008A 138 Signed 2 NICMAXOQ Maximum OUTPUT Queues per MPC
008C 140 Signed 2 NICIPMAX IP Table Limit for this adapter
008E 142 Signed 2 NICIPCTR IP Table Count for this adapter
0090 144 Bitstring 16 NICDEFIP Default IP Address (accounting)
00A0 160 Signed 2 NICLLMAX IP Table Limit for this adapter
00A2 162 Signed 2 NICLLCTR IP Table Count for this adapter
00A4 164 Address 4 NICPROM Pointer to the NIDBK in PROMISC
LAN Management Area -
The fields in this area are used to connect the
adapter (NIC) to a Virtual LAN.
To connect or disconnect this adapter (NIC) to/from
a Virtual LAN, the following locks must be obtained
(in this sequence):
- The LAN Lock (LANLKWRD) EXCLUSIVE
- The NIC Adapter Lock (NICLKWRD) EXCLUSIVE
To reference these fields (e.g. while following
the chain) you only need to hold LANLKWRD SHARED.
- Access to the field NICNCABK and the contents of
the NCABK are serialized by the NICCTRLK.
00A8 168 Address 4 NICFPNT Host logical address of the next
NICBK.
00AC 172 Address 4 NICBPNT Host logical address of the
previous NICBK.
00B0 176 Address 4 NICLANBK Host logical address of the
associated LANBK. If NICCNLAN=1
this is a System LAN. Otherwise
this is the PRIVATE LAN that
represents a disconnected
adapter.
00B4 180 Address 4 NICSIGA SIGA Simulation routine Linkage:
HCPCALL R15 Input/Output: Like
HCPIQQWR TMODEAR or TMODESTD
00B8 184 Address 4 NICNCABK Host logical address of the NCABK
00BC 188 Address 4 NICESMVL ESM VLAN List Pointer
Adapter Router entries.
00C0 192 Address 4 NICRXTBL Pointer to IPNBK(Router) list
00C4 196 Signed 2 NICRXCTR Count of Router entries
00C6 198 Bitstring 6 * Reserved for future IBM use
00CC 204 Address 4 NICVRTBK VSWITCH Routing Table
Adapter Counter LKWRD.
The adapter counter lock word serializes the field
NICNCABK, the contents of the NCABK, and the adapter
counters (starting with NICTXBYT.)
Notes : LKWRDSIZ == 3 doublewords.
00D0 208 Dbl-Word 8 NICCTRLK (3) Adapter Counter Lockword
Adapter Counters.
00E8 232 Dbl-Word 8 NICCTRS (0) Start of NICBK counters
00E8 232 Dbl-Word 8 NICTXBYT Total Bytes Sent
00F0 240 Dbl-Word 8 NICRXBYT Total Bytes Received
00F8 248 Dbl-Word 8 NICTXPKT (0) TX Packets extracted
00F8 248 Signed 4 NICTXPKTHI - High half
00FC 252 Signed 4 NICTXPKTLO - Low half
0100 256 Dbl-Word 8 NICTXDSC (0) TX Packets discarded
0100 256 Signed 4 NICTXDSCHI - High half
0104 260 Signed 4 NICTXDSCLO - Low half
0108 264 Dbl-Word 8 NICTXERR (0) TX Bad Packets discarded
0108 264 Signed 4 NICTXERRHI - High half
010C 268 Signed 4 NICTXERRLO - Low half
0110 272 Dbl-Word 8 NICRXPKT (0) RX Packets received
0110 272 Signed 4 NICRXPKTHI - High half
0114 276 Signed 4 NICRXPKTLO - Low half
0118 280 Dbl-Word 8 NICRXDSC (0) RX Packets discarded/overflow
0118 280 Signed 4 NICRXDSCHI - High half
011C 284 Signed 4 NICRXDSCLO - Low half
0120 288 Dbl-Word 8 NICRXERR (0) RX Bad Packets discarded
0120 288 Signed 4 NICRXERRHI - High half
0124 292 Signed 4 NICRXERRLO - Low half
Adapter Counters (Continue)
The following set of counters are used to keep track of a
specific port's attempt to acquire key locks or stack work
in the main line data transfer path. In addition to
keeping track of the lock requests, a corresponding
counter will indicate the number of times the port had to
wait to perform the function.
The following information is kept on a per port basis,
including both real and virtual guest LAN ports:
LANBK (LANLKWR) lock requests sending or receiving data.
NICBK (NICLKWD) lock requests when sending data to
another port.
NICBK (NICLKWD) lock requests when receiving data from
another port.
Stacking and unstacking work (NDMBKs) on NIDSTACK.
0128 296 Dbl-Word 8 NIC_LOCKREQS LANBK lock request
0130 304 Dbl-Word 8 NIC_LANDEFER LANBK lock deferrals
0138 312 Dbl-Word 8 NIC_TXREQS NICBK lock requests sending data
0140 320 Dbl-Word 8 NIC_TXDEFERS NICBK lock deferrals sending data
0148 328 Dbl-Word 8 NIC_RXREQS NICBK lock requests receiving
data
0150 336 Dbl-Word 8 NIC_RXDEFERS NICBK lock deferrals receiving
data
0158 344 Dbl-Word 8 NIC_STKREQS Count of work stacked on NIDSTACK
0160 352 Dbl-Word 8 NIC_STKDEFERS Times it took multiple attempts
to stack work on NIDSTACK.
0168 360 Dbl-Word 8 NIC_SESRXPCI Count of PCI (or AIF) events
reflected for input queues.
0170 368 Dbl-Word 8 NIC_SESTXPCI Count of PCI (or AIF) events
reflected for output queues.
00000090 NICCTRLN *-NICCTRS Length of NICBK
counters
Pointer to structure of vlan counters (VLCBK)
Will contain:
Pointer back to owning NICBK (A or AD)
and 3 double word counters:
# of Frames IN (VLCIN)
# of Frames OUT (VLCOUT)
# of Frames IN Discarded (VLCINDSC)
# of Frames OUT Discarded (VLCOUTDC)
For each VLAN (1-4094)
0178 376 Dbl-Word 8 NICCTRVL (4) Reserve a MLTBK here
DEDICATE_ADAPTER simulation.
0198 408 Bitstring 1 NICHWDED DEDICATE_ADAPTER status
1... .... NICHWDED_ON X'80' NICHWDED_ON - Adapter is
dedicated now
0199 409 Bitstring 1 * Reserved for IBM use
019A 410 Signed 2 NICDEDUA Unit Address (offset) of owner
019C 412 Bitstring 6 NICDEDMA ExclusiveUsageMAC
01A2 418 Bitstring 2 * Reserved for IBM use
01A4 420 Bitstring 8 NICDEDID ExclusiveUsageID
End of the NICBK.
01B0 432 Dbl-Word 8 NIC$END (0) End of the NICBK structure
000001B0 NICBKLN *-NICBK Length of NICBK in bytes
00000036 NICBKSZ (*-NICBK+7)/8 Size of NICBK in
doublewords
Related constants.
00000100 NICMAXDV 256 Max Network Devices per NIC
00000020 NICMAXNT 32 Max Network Ports per NIC
Define MLTBK for this compile.
PREFIX_LEN = 3
Start of Assembler Control Block
NICBK Storage Layout
*** NICBK - Virtual Network Interface Card block
*
* +-------------------------------------------------------+
* 0 | NICDESC |
* +-------------------------------------------------------+
* 8 | NICOWNER |
* +-------------+-------------+-------------+------+------+
* 10 | NICBASE | NICLAST | NICDEVS |:TYPE |:TRANP|
* +-------------+------+------+------+------+------+------+
* 18 | NICCUTYP |:CUMDL| NICDVTYP |:DVMDL|:CHPTP|:CHPID|
* +-------------+------+------+------+------+------+------+
* 20 | NICVDEV | NICMFS |
* +---------------------------+-------------+-------------+
* 28 | NICMAC | NICTKUID |
* +---------------------------+-------------+-------------+
* 30 | NICTKLST | NICVLANS |
* +-------------+-------------+---------------------------+
* 38 | NICVLCTR |NIC_VIDINST | NICVLCPT |
* +-------------+-------------+---------------------------+
* 40 | |
* = NICLKWRD =
* | |
* +---------------------------+------+------+-------------+
* 58 | NICRFCTR |:CFLG |:VLFLG| NICPVID |
* +---------------------------+------+------+-------------+
* 60 | NICNIDHD | NICNIDTL |
* +---------------------------+---------------------------+
* 68 | NICMGPOR | NICMGIFI |
* +------+------+------+------+---------------------------+
* 70 |:QDFMT|:VPORT|:AFLG |:ADPNL| NICADPNM- |
* +------+------+------+------+---------------------------+
* 78 | -(074) | NICMPCCT |
* +---------------------------+---------------------------+
* 80 | NICMPCHD | NICMPCTL |
* +-------------+-------------+-------------+-------------+
* 88 | NICMAXIQ | NICMAXOQ | NICIPMAX | NICIPCTR |
* +-------------+-------------+-------------+-------------+
* 90 | NICDEFIP |
* | |
* +-------------+-------------+---------------------------+
* A0 | NICLLMAX | NICLLCTR | NICPROM |
* +-------------+-------------+---------------------------+
* A8 | NICFPNT | NICBPNT |
* +---------------------------+---------------------------+
* B0 | NICLANBK | NICSIGA |
* +---------------------------+---------------------------+
* B8 | NICNCABK | NICESMVL |
* +---------------------------+-------------+-------------+
* C0 | NICRXTBL | NICRXCTR |/////////////|
* +---------------------------+-------------+-------------+
* C8 |///////////////////////////| NICVRTBK |
* +---------------------------+---------------------------+
* D0 | |
* = NICCTRLK =
* | |
* +-------------------------------------------------------+
* E8 | NICTXBYT |
* +-------------------------------------------------------+
* F0 | NICRXBYT |
* +---------------------------+---------------------------+
* F8 | NICTXPKTHI | NICTXPKTLO |
* +---------------------------+---------------------------+
* 100 | NICTXDSCHI | NICTXDSCLO |
* +---------------------------+---------------------------+
* 108 | NICTXERRHI | NICTXERRLO |
* +---------------------------+---------------------------+
* 110 | NICRXPKTHI | NICRXPKTLO |
* +---------------------------+---------------------------+
* 118 | NICRXDSCHI | NICRXDSCLO |
* +---------------------------+---------------------------+
* 120 | NICRXERRHI | NICRXERRLO |
* +---------------------------+---------------------------+
* 128 | NIC_LOCKREQS |
* +-------------------------------------------------------+
* 130 | NIC_LANDEFER |
* +-------------------------------------------------------+
* 138 | NIC_TXREQS |
* +-------------------------------------------------------+
* 140 | NIC_TXDEFERS |
* +-------------------------------------------------------+
* 148 | NIC_RXREQS |
* +-------------------------------------------------------+
* 150 | NIC_RXDEFERS |
* +-------------------------------------------------------+
* 158 | NIC_STKREQS |
* +-------------------------------------------------------+
* 160 | NIC_STKDEFERS |
* +-------------------------------------------------------+
* 168 | NIC_SESRXPCI |
* +-------------------------------------------------------+
* 170 | NIC_SESTXPCI |
* +-------------------------------------------------------+
* 178 | |
* = NICCTRVL =
* | |
* +------+------+-------------+---------------------------+
* 198 |:HWDED|//////| NICDEDUA | NICDEDMA- |
* +------+------+-------------+---------------------------+
* 1A0 | -(19C) |/////////////| NICDEDID- |
* +-------------+-------------+---------------------------+
* 1A8 | -(1A4) |///////////////////////////|
* +---------------------------+---------------------------+
*
*** NICBK - Virtual Network Interface Card block
NICBK Cross Reference
Symbol Dspl Value -------------- ---- ----- NIC$END 01B0 NIC_LANDEFER 0130 NIC_LOCKREQS 0128 NIC_RXDEFERS 0150 NIC_RXREQS 0148 NIC_SESRXPCI 0168 NIC_SESTXPCI 0170 NIC_STKDEFERS 0160 NIC_STKREQS 0158 NIC_TXDEFERS 0140 NIC_TXREQS 0138 NIC_VIDINST 003A NICADPNL 0073 NICADPNM 0074 NICADPTK 0073 NICAFLG 0072 NICAUTHX 0072 80 NICBASE 0010 NICBKLN 01B0 000001B0 NICBKSZ 01B0 00000036 NICBPNT 00AC NICCFLG 005C NICCHPID 001F NICCHPTP 001E NICCNLAN 005C 20 NICCTRLK 00D0 NICCTRLN 0170 00000090 NICCTRS 00E8 NICCTRVL 0178 NICCUMDL 001A NICCUTYP 0018 NICDEDID 01A4 NICDEDMA 019C NICDEDUA 019A NICDEFIP 0090 NICDESC 0000 NICDEVS 0014 NICDLPRG 005C 40 NICDVMDL 001D NICDVTYP 001B NICESMVL 00BC NICETHER 0017 00000002 NICFPNT 00A8 NICHIPR 0016 00000001 NICHWDED 0198 NICHWDED_ON 0198 80 NICINPRG 005C 80 NICIP 0017 00000001 NICIPCTR 008E NICIPMAX 008C NICLANBK 00B0 NICLAST 0012 NICLKWRD 0040 NICLLCTR 00A2 NICLLMAX 00A0 NICMAC 0028 NICMAXDV 01B0 00000100 NICMAXIQ 0088 NICMAXNT 01B0 00000020 NICMAXOQ 008A NICMFS 0024 NICMGIFI 006C NICMGPOR 0068 NICMPCCT 007C NICMPCHD 0080 NICMPCTL 0084 NICNCABK 00B8 NICNIDHD 0060 NICNIDTL 0064 NICOWNER 0008 NICPAUT 005C 02 NICPROM 00A4 NICPVID 005E NICPVLAN 005C 10 NICQDFMT 0070 NICQDIO 0016 00000002 NICREADY 005C 08 NICRFCTR 0058 NICROUTR 005C 04 NICRXBYT 00F0 NICRXCTR 00C4 NICRXDSC 0118 NICRXDSCHI 0118 NICRXDSCLO 011C NICRXERR 0120 NICRXERRHI 0120 NICRXERRLO 0124 NICRXPKT 0110 NICRXPKTHI 0110 NICRXPKTLO 0114 NICRXTBL 00C0 NICSIGA 00B4 NICTKLST 0030 NICTKUID 002E NICTRANP 0017 NICTXBYT 00E8 NICTXDSC 0100 NICTXDSCHI 0100 NICTXDSCLO 0104 NICTXERR 0108 NICTXERRHI 0108 NICTXERRLO 010C NICTXPKT 00F8 NICTXPKTHI 00F8 NICTXPKTLO 00FC NICTYPE 0016 NICUNKWN 0017 00000003 NICVDEV 0020 NICVLANS 0034 NICVLCPT 003C NICVLCTR 0038 NICVLFLG 005D NICVLFLT 005D 20 NICVLGBL 005D 80 NICVLNON 005D 10 NICVLUSR 005D 40 NICVPORT 0071 NICVPORT_ACCESS 0071 00000001 NICVPORT_NONE 0071 00000000 NICVPORT_TRUNK 0071 00000002 NICVRTBK 00CC NICVSW 0016 00000003
Copyright IBM Corporation, 1990, 2007