|
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 or VSwitch MAC
Management NIC
00000006 NICBRIDG 6 NICBRIDG IQD adapter for a
Bridge Port
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.
This also would be the case for a Logical Guest Port
used to represent a guest on the HiperSockets Bridge.
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 Ptr to cached VLCBKs (VLCCACHE)
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 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
.... ...1 NICLGLAN X'01' NICLGLAN Connected as a
LOGICAL Guest Port (HiperSockets)
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
.1.. .... NICUSRPN X'40' NICUSRPN User-defined
PORTNUMBER set
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 1 NICPFLG Processing Flags
1... .... NICACTIV X'80' NICACTIV UpLink Port is
Still Active
.1.. .... NICIVLPT X'40' NICIVLPT IVL NIC Port
..1. .... NICPFTKO X'20' NICPFTKO Take-Over Pseudo
NIC Port
.... ...1 NICSPCPT X'01' NICSPCPT Special Data
Transfer Port
00B0 176 Bitstring 2 * 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
00B4 180 Signed 4 * Reserved for Future IBM Use
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.
00B8 184 Dbl-Word 8 NICPTRS (0) L:NICBK Pointers
00B8 184 Address 4 NICFPNT NEXT L:NICBK on the List
00BC 188 Address 4 NICBPNT PREV L:NICBK on the List
00C0 192 Signed 4 * Reserved for Future IBM Use
00C4 196 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.
00C8 200 Address 4 NICSIGA SIGA Simulation routine Linkage:
HCPCALL R15 Input/Output: Like
HCPIQQWR TMODEAR or TMODESTD
00CC 204 Address 4 NICNCABK Host logical address of the NCABK
00D0 208 Address 4 NICESMVL ESM VLAN List Pointer
Adapter Router entries.
00D4 212 Address 4 NICRXTBL Pointer to IPNBK(Router) list
00D8 216 Signed 2 NICRXCTR Count of Router entries
Pending TX Counter Update
This field is serialized by the Test and Set Instruction.
00DA 218 Bitstring 1 NICTXPND TX Counter Update Pending x'00' :
Not Pending x'FF' : Counter
Update Pending
PQUPLINKTX priority assigned to this NIC
Notes : For performance reasons, the values of NICTXUPL must
be muliples of the size of each entry (NIDXSIZE) in
the NID Transmission Queue Array (NIDTRANS).
00DB 219 Bitstring 1 NICTXUPL Uplink TX Priority for this NIC
00000000 NICTXCP 0 NICTXCP Queue 0 z/VM (CP use)
00000010 NICTXHI 16 NICTXHI Queue 1 High (Guest
use)
00000010 NICTXRCV 16 NICTXRCV Queue 1 IVL Recovery
00000020 NICTXNM 32 NICTXNM Queue 2 Normal (Guest
use)
00000030 NICTXLO 48 NICTXLO Queue 3 Low (Guest
use)
00000030 NICTXLST NICTXLO NICTXLST Last Valid
Output Queue Index
00DC 220 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 NICCTRS).
This lock also serializes the NICCCLBK pointer and the
contents of the CCLBK.
Notes : LKWRDSIZ == 3 doublewords.
00E0 224 Dbl-Word 8 NICCTRLK (3) Adapter Counter Lockword
NICCCLBK is a pointer to the Counters Clear Block CCLBK.
This control block is created when SET VSWITCH COUNTERS
CLEAR {DATA|ERRORS|DISCARDED|ALL} is called.
The control block contains timestamps for DATA, ERRORS
and DISCARDED. It also contains delta values for the
counter values (errors, discarded, transmitted packets,
transmitted bytes, received packets and received bytes).
The delta values will be used when calculating
the correct values to be displayed by the QUERY commands.
This pointer and the CCLBK structure are serialized by
the Adapter Counter Lockword (NICCTRLK).
00F8 248 Address 4 NICCCLBK Pointer to CCLBK-Counters clear
Adapter Counters
0100 256 Dbl-Word 8 NICCTRS (0) Start of NICBK counters
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 (LANLKWRD) lock requests sending or receiving data.
NICBK (NICLKWRD) lock requests when sending data to
another port.
NICBK (NICLKWRD) lock requests when receiving data from
another port.
Queueing and removing work (NDMBKs) on a target's port
0100 256 Dbl-Word 8 NIC_LOCKREQS LANBK lock request
0108 264 Dbl-Word 8 NIC_LANDEFER LANBK lock deferrals
0110 272 Dbl-Word 8 NIC_TXREQS NICBK lock requests sending data
0118 280 Dbl-Word 8 NIC_TXDEFERS NICBK lock deferrals sending data
0120 288 Dbl-Word 8 NIC_RXREQS NICBK lock requests receiving
data
0128 296 Dbl-Word 8 NIC_RXDEFERS NICBK lock deferrals receiving
data
0130 304 Dbl-Word 8 NIC_STKREQS Number of times we queued work on
a target port
0138 312 Dbl-Word 8 NIC_STKDEFERS Times it took multiple attempts
to queue work on a target port
0140 320 Dbl-Word 8 NIC_SESRXPCI Count of PCI (or AIF) events
reflected for input queues.
0148 328 Dbl-Word 8 NIC_SESTXPCI Count of PCI (or AIF) events
reflected for output queues.
Adapter Transmit and Receive Counters
Counters are maintained on a queue basis - one set for
Transmit (output) and one set for Receive (input).
The number of input and output queues can vary based
on the port represented by this NIC.
Most ports will have 1 input queue and 1 output queue.
A UPLINK device will have 1 input queue and either 1, 2,
or 4 output queues.
If a VSwitch is configured for PRIQUEUING ON and the
UPLINK device has PQ_ON, then 4 output queues are created.
For the IVL VSwitch with PRIQUEUING ON and the device has
PQ_ON, then 2 output queues are created.
All other UPLINK devices will have 1 input queue and 1
output queue.
**** RECALL that the counters are maintained in the NICBK
**** from the perspective of the simulated LAN segment. For
**** an UPLINK NIC, this means it is the RX counters that
**** represent the output queues.
-- For simplicity sake, 1 set of NICTX counters and 4
-- sets of NICRX counters are included/allocated here,
-- although is only a VSwitch UPLINK device that will
-- ever reference more than 1 NICRX set.
The following counters have delta values saved in the
Counters Clear Block (CCLBK). See NICCCLBK above.
0150 336 Dbl-Word 8 NICTXCTS (0) NICTX counters - 1 set per NIC
0150 336 Dbl-Word 8 NICTXBYT Total Bytes Sent
0158 344 Dbl-Word 8 NICTXPKT (0) TX Packets extracted
0158 344 Signed 4 NICTXPKTHI - High half
015C 348 Signed 4 NICTXPKTLO - Low half
0160 352 Dbl-Word 8 NICTXDSC (0) TX Packets discarded
0160 352 Signed 4 NICTXDSCHI - High half
0164 356 Signed 4 NICTXDSCLO - Low half
0168 360 Dbl-Word 8 NICTXERR (0) TX Bad Packets discarded
0168 360 Signed 4 NICTXERRHI - High half
016C 364 Signed 4 NICTXERRLO - Low half
0170 368 Dbl-Word 8 * (0) Insure DW Alignment of Overlay
0170 368 Bitstring 128 NICRXCTS NICRX counters - 1-4 sets per NIC
000000F0 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)
01F0 496 Dbl-Word 8 NICCTRVL (4) Reserve a MLTBK here
0210 528 Bitstring 4 * Reserved for IBM use
DEDICATE_ADAPTER simulation.
0214 532 Bitstring 1 NICHWDED DEDICATE_ADAPTER status
1... .... NICHWDED_ON X'80' NICHWDED_ON - Adapter is
dedicated now
0215 533 Bitstring 1 * Reserved for IBM use
0216 534 Signed 2 NICDEDUA Unit Address (offset) of owner
0218 536 Bitstring 6 NICDEDMA ExclusiveUsageMAC
021E 542 Bitstring 2 * Reserved for IBM use
0220 544 Bitstring 8 NICDEDID ExclusiveUsageID
Logical Guest Port Network Token
This field is only valid for a bridge connected Logical
Guest Port. The Network Token is assigned by firmware.
0228 552 Dbl-Word 8 NICTOKEN (0) Entire Network Token
0228 552 Signed 2 NICTDEV Device Number
022A 554 Bitstring 1 NICTCSID Channel Subsystem ID (CSSID)
022B 555 Bitstring 1 NICTIID Image ID (IID)
022C 556 Bitstring 1 NICTSSID Subchannel Set ID (SSID)
022D 557 Bitstring 1 NICTCHPI CHPID Number (CHPID)
022E 558 Signed 2 NICTCHID Channel ID (CHID)
NICLG3DP and NICLG3DP_E are serialized by the BPBCFGLK and
should be the only flags defined in NICLGFLG.
0230 560 Bitstring 1 NICLGFLG Logical Guest Port flags
1... .... NICLG3DP X'80' NICLG3DP - Used for
resolving CHSC x'3D'
.1.. .... NICLG3DP_E X'40' NICLG3DP_E - Used for
resolving CHSC x'3D'
0231 561 Bitstring 5 * Reserved for future IBM use
NICBCFGC is a counter of the number of deferred
changes for a HS Logical Guest Port.
It is serialized by the BPBCFGLK which ensures only one
Bridge Port Configuration change is being handled at a
time and allows the safe increment/decrement of NICBCFGC
without holding the NICLKWRD lock.
This counter is used when deciding whether a Logical Guest
Port can be removed when there are no longer any MACs or
VLANs associated with the port. If there are still pending
changes (NICBCFGC>0) then new/additional MACs may be in the
queue to be added and therefore the port should not be
removed. The counter should be incremented before stacking
a call to HCPSWFNC to add/delete a MAC or VLAN for the HS
logical guest port. HCPSWFNC will decrement the count as
it processes the change.
0236 566 Signed 2 NICBCFGC Configuration Count
0238 568 Signed 4 * Reserved for Future IBM Use
Attributes from the NICDEF command.
When NICDDCFG==1 NICDDNET contains the NICDEF LAN
identification (owner||name) for an automatic
connection to the network.
When NICDDCFM==1 the NICDEF LAN configuration is
mandatory (This virtual NIC can only couple to the
configured network).
When NICDDLAN==1 NICDDNET contains the LAN information
(owner||name) from a SPECIAL/NICDEF statement. This
identifies the LAN (but does NOT authorize connection).
023C 572 Bitstring 1 NICDDFLG Authorization flags
1... .... NICDDCFG X'80' NICDDCFG NICDEF LAN is
configured
.1.. .... NICDDCFM X'40' NICDDCFM NICDEF LAN is
mandatory
..1. .... NICDDLAN X'20' NICDDLAN LAN is named
(NICDDNET*)
023D 573 Bitstring 3 * Reserved for Future IBM Use
0240 576 Address 4 NICVNABK Pointer to VNABK (from NICDEF)
0244 580 Bitstring 16 NICDDNET (0) Configured network (owner||name)
0244 580 Character 8 NICDDNET_OWNER Configured network owner
024C 588 Character 8 NICDDNET_NAME Configured network name
End of the NICBK.
0258 600 Dbl-Word 8 NIC$END (0) End of the NICBK structure
00000258 NICBKLN *-NICBK Length of NICBK in bytes
0000004B NICBKSZ (*-NICBK+7)/8 Size of NICBK in
doublewords
NIC RX Array Entry
An NIC representing an UPLINK can have 1, 2, or 4 sets of
NICRX counters. All other NICs have 1 set.
To obtain the overall total of RX values, one needs to
add up the 4 Array Entries. If a queue is not used, the
counters should be 0.
0170 368 Dbl-Word 8 NICRXBYT (0) RX Bytes Received
0170 368 Signed 4 NICRXBYTHI - High half
0174 372 Signed 4 NICRXBYTLO - Low half
0178 376 Dbl-Word 8 NICRXPKT (0) RX Packets received
0178 376 Signed 4 NICRXPKTHI - High half
017C 380 Signed 4 NICRXPKTLO - Low half
0180 384 Dbl-Word 8 NICRXDSC (0) RX Packets discarded/overflow
0180 384 Signed 4 NICRXDSCHI - High half
0184 388 Signed 4 NICRXDSCLO - Low half
0188 392 Dbl-Word 8 NICRXERR (0) RX Bad Packets discarded
0188 392 Signed 4 NICRXERRHI - High half
018C 396 Signed 4 NICRXERRLO - Low half
00000020 NICRXSZB *-NICRXBYT Length of NIC RX Array
Entry
00000000 NICRXSQ0 NICRXSZB*0 Queue 0 offset
00000020 NICRXSQ1 NICRXSZB*1 Queue 1 offset
00000040 NICRXSQ2 NICRXSZB*2 Queue 2 offset
00000060 NICRXSQ3 NICRXSZB*3 Queue 3 offset
00000004 NICRXMAX 4 Maximum number of NIC RX
entries
00000002 NICRXIVL 2 Number of NIC RX entries for
IVL
Define the DSECT for the VLCBK cache entries that are
pointed to by NICVLCPT.
| |