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 RELOCATION CONSIDERATIONS : None 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 Bitstring 10 NICOWNBS (0) NIC Owner fields 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 adapter for physical UPLINK 00000004 NICINMN 4 NICINMN INMN adapter type 00000005 NICIEDN 5 NICIEDN IEDN adapter type 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 (0) Port number and ifIndex 0068 104 Signed 4 NICMGIFI Alternate label 006C 108 Signed 4 NICRPORT Requested port for couple 0070 112 Address 4 NICMSVBK Pointer to NICBASE MSVBK Once set this is not cleared Device Specific Area - 0074 116 Bitstring 1 NICQDFMT QDIO Queue Format 0075 117 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 0076 118 Bitstring 1 NICAFLG Authorization flags 1... .... NICAUTHX X'80' NICAUTHX Authorized by the ESM 0077 119 Bitstring 9 NICADPTK (0) Adapter Name : Length||Token 0077 119 Bitstring 1 NICADPNL Length of NICADPNM Token 0078 120 Character 8 NICADPNM Adapter Name Token 0080 128 Signed 4 NICMPCCT Count of established MPC groups 0084 132 Address 4 NICMPCHD Host logical address of the first MPCBK, chained by MPCNEXT/MPCPREV 0088 136 Address 4 NICMPCTL HL @ of the last MPCBK 008C 140 Signed 2 NICMAXIQ Maximum INPUT Queues per MPC 008E 142 Signed 2 NICMAXOQ Maximum OUTPUT Queues per MPC 0090 144 Signed 2 NICIPMAX IP Table Limit for this adapter 0092 146 Signed 2 NICIPCTR IP Table Count for this adapter 0094 148 Bitstring 16 NICDEFIP Default IP Address (accounting) 00A4 164 Signed 2 NICLLMAX IP Table Limit for this adapter 00A6 166 Signed 2 NICLLCTR IP Table Count for this adapter 00A8 168 Address 4 NICPROM Pointer to the NIDBK in PROMISC 00AC 172 Bitstring 1 NICPPCNT Maximum number of ports 00AD 173 Bitstring 1 NICPPORT Configured port number 00AE 174 Bitstring 1 NICLFLG SSI LGR Relocation flags 1... .... NICLGRGA X'80' NICLGRGA - Grat ARP needed after SETVMAC 00AF 175 Bitstring 3 * Reserved for future IBM use LGR level/version (NICLGRLV) Contains the level of the source LGRVDEV data when this NIC is the subject of a relocation. See also LGRVDEV COPY which describes which fields are relevant at each version. Valid when VMDRLFLG bits VMDRLINP+VMDRLOIB are on. NICLGRLV was first stored with PITS 2U05379 after PITS 2U04209 defined Version 2. $VDEV_VER = 2 indicates the following fields are passed to the target: NICVLANS NICVLCTR NICPVID NICVPORT LANVLFLT 00B2 178 Signed 2 NICLGRLV Source (NIC)VDEV LGR data version 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. 00B4 180 Address 4 NICFPNT Host logical address of the next NICBK. 00B8 184 Address 4 NICBPNT Host logical address of the previous NICBK. 00BC 188 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. 00C0 192 Address 4 NICSIGA SIGA Simulation routine Linkage: HCPCALL R15 Input/Output: Like HCPIQQWR TMODEAR or TMODESTD 00C4 196 Address 4 NICNCABK Host logical address of the NCABK 00C8 200 Address 4 NICESMVL ESM VLAN List Pointer Adapter Router entries. 00CC 204 Address 4 NICRXTBL Pointer to IPNBK(Router) list 00D0 208 Signed 2 NICRXCTR Count of Router entries 00D2 210 Bitstring 6 * Reserved for future IBM use 00D8 216 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. 00E0 224 Dbl-Word 8 NICCTRLK (3) Adapter Counter Lockword Adapter Counters. 00F8 248 Dbl-Word 8 NICCTRS (0) Start of NICBK counters 00F8 248 Dbl-Word 8 NICTXBYT Total Bytes Sent 0100 256 Dbl-Word 8 NICRXBYT Total Bytes Received 0108 264 Dbl-Word 8 NICTXPKT (0) TX Packets extracted 0108 264 Signed 4 NICTXPKTHI - High half 010C 268 Signed 4 NICTXPKTLO - Low half 0110 272 Dbl-Word 8 NICTXDSC (0) TX Packets discarded 0110 272 Signed 4 NICTXDSCHI - High half 0114 276 Signed 4 NICTXDSCLO - Low half 0118 280 Dbl-Word 8 NICTXERR (0) TX Bad Packets discarded 0118 280 Signed 4 NICTXERRHI - High half 011C 284 Signed 4 NICTXERRLO - Low half 0120 288 Dbl-Word 8 NICRXPKT (0) RX Packets received 0120 288 Signed 4 NICRXPKTHI - High half 0124 292 Signed 4 NICRXPKTLO - Low half 0128 296 Dbl-Word 8 NICRXDSC (0) RX Packets discarded/overflow 0128 296 Signed 4 NICRXDSCHI - High half 012C 300 Signed 4 NICRXDSCLO - Low half 0130 304 Dbl-Word 8 NICRXERR (0) RX Bad Packets discarded 0130 304 Signed 4 NICRXERRHI - High half 0134 308 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 queue 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. Queueing and removing work (NDMBKs) on a target's port 0138 312 Dbl-Word 8 NIC_LOCKREQS LANBK lock request 0140 320 Dbl-Word 8 NIC_LANDEFER LANBK lock deferrals 0148 328 Dbl-Word 8 NIC_TXREQS NICBK lock requests sending data 0150 336 Dbl-Word 8 NIC_TXDEFERS NICBK lock deferrals sending data 0158 344 Dbl-Word 8 NIC_RXREQS NICBK lock requests receiving data 0160 352 Dbl-Word 8 NIC_RXDEFERS NICBK lock deferrals receiving data 0168 360 Dbl-Word 8 NIC_STKREQS Number of times we queued work on a target port 0170 368 Dbl-Word 8 NIC_STKDEFERS Times it took multiple attempts to queue work on a target port 0178 376 Dbl-Word 8 NIC_SESRXPCI Count of PCI (or AIF) events reflected for input queues. 0180 384 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) 0188 392 Dbl-Word 8 NICCTRVL (4) Reserve a MLTBK here 01A8 424 Bitstring 4 * Reserved for IBM use DEDICATE_ADAPTER simulation. 01AC 428 Bitstring 1 NICHWDED DEDICATE_ADAPTER status 1... .... NICHWDED_ON X'80' NICHWDED_ON - Adapter is dedicated now 01AD 429 Bitstring 1 * Reserved for IBM use 01AE 430 Signed 2 NICDEDUA Unit Address (offset) of owner 01B0 432 Bitstring 6 NICDEDMA ExclusiveUsageMAC 01B6 438 Bitstring 2 * Reserved for IBM use 01B8 440 Bitstring 8 NICDEDID ExclusiveUsageID End of the NICBK. 01C0 448 Dbl-Word 8 NIC$END (0) End of the NICBK structure 000001C0 NICBKLN *-NICBK Length of NICBK in bytes 00000038 NICBKSZ (*-NICBK+7)/8 Size of NICBK in doublewords Related constants. 00000100 NICMAXDV 256 Max Network Devices per NIC 00000010 NICMAXNT 16 Max Network Ports per NIC - QDIO 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 | NICMGIFI | NICRPORT | * +---------------------------+------+------+------+------+ * 70 | NICMSVBK |:QDFMT|:VPORT|:AFLG |:ADPNL| * +---------------------------+------+------+------+------+ * 78 | NICADPNM | * +---------------------------+---------------------------+ * 80 | NICMPCCT | NICMPCHD | * +---------------------------+-------------+-------------+ * 88 | NICMPCTL | NICMAXIQ | NICMAXOQ | * +-------------+-------------+-------------+-------------+ * 90 | NICIPMAX | NICIPCTR | | * +-------------+-------------+ | * | NICDEFIP | * | +-------------+-------------+ * A0 | | NICLLMAX | NICLLCTR | * +---------------------------+------+------+------+------+ * A8 | NICPROM |:PPCNT|:PPORT|:LFLG |//////| * +-------------+-------------+------+------+------+------+ * B0 |/////////////| NICLGRLV | NICFPNT | * +-------------+-------------+---------------------------+ * B8 | NICBPNT | NICLANBK | * +---------------------------+---------------------------+ * C0 | NICSIGA | NICNCABK | * +---------------------------+---------------------------+ * C8 | NICESMVL | NICRXTBL | * +-------------+-------------+---------------------------+ * D0 | NICRXCTR |/////////////////////////////////////////| * +-------------+-------------+---------------------------+ * D8 | NICVRTBK |///////////////////////////| * +---------------------------+---------------------------+ * E0 | | * = NICCTRLK = * | | * +-------------------------------------------------------+ * F8 | NICTXBYT | * +-------------------------------------------------------+ * 100 | NICRXBYT | * +---------------------------+---------------------------+ * 108 | NICTXPKTHI | NICTXPKTLO | * +---------------------------+---------------------------+ * 110 | NICTXDSCHI | NICTXDSCLO | * +---------------------------+---------------------------+ * 118 | NICTXERRHI | NICTXERRLO | * +---------------------------+---------------------------+ * 120 | NICRXPKTHI | NICRXPKTLO | * +---------------------------+---------------------------+ * 128 | NICRXDSCHI | NICRXDSCLO | * +---------------------------+---------------------------+ * 130 | NICRXERRHI | NICRXERRLO | * +---------------------------+---------------------------+ * 138 | NIC_LOCKREQS | * +-------------------------------------------------------+ * 140 | NIC_LANDEFER | * +-------------------------------------------------------+ * 148 | NIC_TXREQS | * +-------------------------------------------------------+ * 150 | NIC_TXDEFERS | * +-------------------------------------------------------+ * 158 | NIC_RXREQS | * +-------------------------------------------------------+ * 160 | NIC_RXDEFERS | * +-------------------------------------------------------+ * 168 | NIC_STKREQS | * +-------------------------------------------------------+ * 170 | NIC_STKDEFERS | * +-------------------------------------------------------+ * 178 | NIC_SESRXPCI | * +-------------------------------------------------------+ * 180 | NIC_SESTXPCI | * +-------------------------------------------------------+ * 188 | | * = NICCTRVL = * | | * +---------------------------+------+------+-------------+ * 1A8 |///////////////////////////|:HWDED|//////| NICDEDUA | * +---------------------------+------+------+-------------+ * 1B0 | NICDEDMA |/////////////| * +-----------------------------------------+-------------+ * 1B8 | NICDEDID | * +-------------------------------------------------------+ * *** NICBK - Virtual Network Interface Card block
NICBK Cross Reference
Symbol Dspl Value -------------- ---- ----- NIC$END 01C0 NIC_LANDEFER 0140 NIC_LOCKREQS 0138 NIC_RXDEFERS 0160 NIC_RXREQS 0158 NIC_SESRXPCI 0178 NIC_SESTXPCI 0180 NIC_STKDEFERS 0170 NIC_STKREQS 0168 NIC_TXDEFERS 0150 NIC_TXREQS 0148 NIC_VIDINST 003A NICADPNL 0077 NICADPNM 0078 NICADPTK 0077 NICAFLG 0076 NICAUTHX 0076 80 NICBASE 0010 NICBKLN 01C0 000001C0 NICBKSZ 01C0 00000038 NICBPNT 00B8 NICCFLG 005C NICCHPID 001F NICCHPTP 001E NICCNLAN 005C 20 NICCTRLK 00E0 NICCTRLN 0180 00000090 NICCTRS 00F8 NICCTRVL 0188 NICCUMDL 001A NICCUTYP 0018 NICDEDID 01B8 NICDEDMA 01B0 NICDEDUA 01AE NICDEFIP 0094 NICDESC 0000 NICDEVS 0014 NICDLPRG 005C 40 NICDVMDL 001D NICDVTYP 001B NICESMVL 00C8 NICETHER 0017 00000002 NICFPNT 00B4 NICHIPR 0016 00000001 NICHWDED 01AC NICHWDED_ON 01AC 80 NICIEDN 0016 00000005 NICINMN 0016 00000004 NICINPRG 005C 80 NICIP 0017 00000001 NICIPCTR 0092 NICIPMAX 0090 NICLANBK 00BC NICLAST 0012 NICLFLG 00AE NICLGRGA 00AE 80 NICLGRLV 00B2 NICLKWRD 0040 NICLLCTR 00A6 NICLLMAX 00A4 NICMAC 0028 NICMAXDV 01C0 00000100 NICMAXIQ 008C NICMAXNT 01C0 00000010 NICMAXOQ 008E NICMFS 0024 NICMGIFI 0068 NICMGPOR 0068 NICMPCCT 0080 NICMPCHD 0084 NICMPCTL 0088 NICMSVBK 0070 NICNCABK 00C4 NICNIDHD 0060 NICNIDTL 0064 NICOWNBS 0008 NICOWNER 0008 NICPAUT 005C 02 NICPPCNT 00AC NICPPORT 00AD NICPROM 00A8 NICPVID 005E NICPVLAN 005C 10 NICQDFMT 0074 NICQDIO 0016 00000002 NICREADY 005C 08 NICRFCTR 0058 NICROUTR 005C 04 NICRPORT 006C NICRXBYT 0100 NICRXCTR 00D0 NICRXDSC 0128 NICRXDSCHI 0128 NICRXDSCLO 012C NICRXERR 0130 NICRXERRHI 0130 NICRXERRLO 0134 NICRXPKT 0120 NICRXPKTHI 0120 NICRXPKTLO 0124 NICRXTBL 00CC NICSIGA 00C0 NICTKLST 0030 NICTKUID 002E NICTRANP 0017 NICTXBYT 00F8 NICTXDSC 0110 NICTXDSCHI 0110 NICTXDSCLO 0114 NICTXERR 0118 NICTXERRHI 0118 NICTXERRLO 011C NICTXPKT 0108 NICTXPKTHI 0108 NICTXPKTLO 010C 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 0075 NICVPORT_ACCESS 0075 00000001 NICVPORT_NONE 0075 00000000 NICVPORT_TRUNK 0075 00000002 NICVRTBK 00D8 NICVSW 0016 00000003
Copyright IBM Corporation, 1990, 2011