| |
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure NIDBK Network Interface Device Block.
0000 0 Character 8 NIDDESC NID Description (e.g. IQDC)
0008 8 Address 4 NIDVDEV HL pointer to VDEV
000C 12 Address 4 NIDNICBK HL pointer to NICBK
0010 16 Address 4 NIDFPNT HL pointer to NEXT NIDBK
0014 20 Address 4 NIDBPNT HL pointer to PREV NIDBK
0018 24 Bitstring 1 NIDTYPE Network Device Type
0019 25 Bitstring 1 NIDGWFCN NIC device function
00000000 NIDNOFCN 0 NIDNOFCN Unassigned
00000001 NIDCTLRD 1 NIDCTLRD CTL-0 / CTL-READ for
QDIO
00000002 NIDCTLWR 2 NIDCTLWR CTL-1 / CTL-WRITE for
QDIO
00000003 NIDDATA 3 NIDDATA DATA device for QDIO or
the one and only device for EQDIO
001A 26 Signed 2 NIDGWDEV (0) NIC device index (0-xxxx)
001A 26 Bitstring 1 NIDUA0 Unit Address (byte 0)
001B 27 Bitstring 1 NIDUA Unit Address
001C 28 Bitstring 4 NIDSTSWD (0) Status Word (summary for trace)
001C 28 Bitstring 1 NIDLATCH Device Latches
1... .... NIDBUSY X'80' NIDBUSY - Busy with a CCW
.1.. .... NIDNTRDY X'40' NIDNTRDY - Device is
NOTREADY
..1. .... NIDCCW1 X'20' NIDCCW1 - This is
First/Only CCW
...1 .... NIDCCFLG X'10' NIDCCFLG - Command Chaining
in effect
.... 1... NIDNEWUC X'08' NIDNEWUC - Last CCW caused
UC
.... .1.. NIDRSEVT X'04' NIDRSEVT - Resetting-Event
Latch Notes : NIDGWSTS is
serialized by NIDSPNLK.
001D 29 Bitstring 1 NIDGWSTS Gateway Status
1... .... NIDMSPND X'80' NIDMSPND - Message pending
from GW
.1.. .... NIDRDPND X'40' NIDRDPND - Read pending
from VM
..1. .... NIDRDACT X'20' NIDRDACT - Read active from
VM
...1 .... NIDWRACT X'10' NIDWRACT - Write active
from VM
.... 1... NIDXDACT X'08' NIDXDACT - QDIO exchange is
active Notes : NIDCNTRL is
serialized by NIDSPNLK.
001E 30 Bitstring 1 NIDCNTRL Control options
1... .... NIDSUSPD X'80' NIDSUSPD - Device is
SUSPENDED
.1.. .... NIDSCHED X'40' NIDSCHED - RESUME is
Scheduled
..1. .... NIDUIPND X'20' NIDUIPND - Unsolicited Int
Pending
...1 .... NIDRESET X'10' NIDRESET - Reset in
Progress
.... 1... NIDDET X'08' NIDDET - DETACH in Progress
001F 31 Bitstring 1 NIDUISTS Pending Unsolicited Status
0020 32 Bitstring 1 NIDCMD Current CCW opcode
0021 33 Bitstring 1 NIDDVPST Posted Unit Status
0022 34 Bitstring 1 NIDDVSTS Latest Unit Status
0023 35 Bitstring 1 NIDTRFLG Extended Trace Flags
1... .... NIDTRCCW X'80' NIDTRCCW - Trace CCW Data
Buffer
.1.. .... NIDTRXFR X'40' NIDTRXFR - Trace Data
Transfers
0024 36 Bitstring 2 NIDSNS (0) Sense Data registers
0024 36 Bitstring 1 NIDSNS0 Sense Byte 0 latches
1... .... NIDCMREJ X'80' NIDCMREJ - Command Reject
.1.. .... NIDINTRQ X'40' NIDINTRQ - Intervention
Reqd
..1. .... NIDBUSCK X'20' NIDBUSCK - Bus-Out Check
...1 .... NIDEQCHK X'10' NIDEQCHK - Equipment Check
.... 1... NIDCDC X'08' NIDCDC - Channel Data Check
.... .1.. NIDCCC X'04' NIDCCC - Channel Control
Check
.... ..1. NIDIFCC X'02' NIDIFCC - Interface Control
Check
.... ...1 NIDCANCL X'01' NIDCANCL - Cancel Function
0025 37 Bitstring 1 NIDSNS1 Sense Byte 1 latches
1... .... NIDRJRES X'80' NIDRJRES - Rejected by
Resetting-Event
0026 38 Bitstring 1 NIDPVCMD Previous CCW opcode
0027 39 Bitstring 1 NIDPVSTS Previous CCW status
0028 40 Bitstring 1 NIDTRANP LAN Transport mode
00000001 NIDIP 1 NIDIP - IP Transport (Layer 3)
00000002 NIDETHER 2 NIDETHER - Ethernet Transport
(Layer 2)
0029 41 Bitstring 1 NIDLANST LAN status flags
1... .... NIDREADY X'80' NIDREADY - LAN Connection
is READY
.1.. .... NIDBCRCV X'40' NIDBCRCV - Inbound
Broadcast enabled
..1. .... NIDBCLPB X'20' NIDBCLPB - Broadcast
Loopback enabled
...1 .... NIDDPRDY X'10' NIDDPRDY - EQDIO Data Plane
is READY
.... 1... NIDMGNT X'08' NIDMGNT - VSwitch
Management Port
.... .1.. NIDVSWCN X'04' NIDVSWCN - This is a
PHYSICAL UpLink Port
.... ..1. NIDNICPT X'02' NIDNICPT - This is a NIC
UpLink Port
.... ...1 NIDD2A8 X'01' NIDD2A8 - Diagnose x2A8
Managed Device
.... .11. NIDUPLNK NIDVSWCN+NIDNICPT NIDUPLNK -
VSWITCH UpLink Port
002A 42 Bitstring 1 NIDLLFLG Link Layer flags
1... .... NIDLLVSW X'80' NIDLLVSW - This is a Link
Layer VSWITCH
.1.. .... NIDLLTKO X'40' NIDLLTKO - This is a
Take-Over Pseudo NIDBK
..1. .... NIDLLARP X'20' NIDLLARP - ARP Offload is
Enabled
...1 .... NIDLLASU X'10' NIDLLASU - ARP Suppression
is Enabled
..11 .... NIDLLITP NIDLLARP+NIDLLASU NIDLLITP ARP
Interception Active
002B 43 Bitstring 1 NIDIPFLG IP Layer flags
1... .... NIDPASS_ENABLED
X'80' NIDPASS_ENABLED - Passthru
support is enable
002C 44 Signed 4 NIDRFCTR Outstanding Reference Counter
Active VLAN list for this device (NIDVLANS->NIDVID array).
VLAN 0 is active for every device, so VLAN 0
does NOT appear in this list. This list includes
an entry for each active VLAN group (except 0).
0030 48 Address 4 NIDVLANS Pointer to NIDVID array
Active MAC list for this device (NIDLLTBL->LLNBK chain).
This list includes an entry for each active MAC
address. This includes unicast, multicast, and
broadcast MAC addresses, sorted by MAC address.
0034 52 Address 4 NIDLLTBL Pointer to Link Layer table
Active IP Address Table (unicast) for this device.
IP Table entries (IPNBK) are sorted by IP Address.
IPv4 addresses are right-justified in 16-byte IPNADDR.
0038 56 Address 4 NIDIPTBL Pointer to IPNBK list
003C 60 Signed 2 NIDIPCTR Number of IP Address entries
003E 62 Signed 2 NIDLLCTR Count of Link Layer entries
Active Multicast Address Table for this device.
IP Table entries (IPNBK) are sorted by IP Address.
IPv4 addresses are right-justified in 16-byte IPNADDR.
0040 64 Address 4 NIDMCTBL Pointer to IPNBK list
0044 68 Signed 2 NIDMCCTR Number of IP Address entries
0046 70 Signed 2 NIDVMCTR Count of Link Layer VMAC entries
Router entries registered for this device.
NIDRXTBL is the anchor for a circular list of
router entries (IPNBK) chained by IPNFPNT/IPNBPNT.
Each IPNBK represents an eligible router for
a specific VLAN, IP version, and type (Primary,
Secondary, or Multicast router).
0048 72 Address 4 NIDRXTBL Pointer to IPNBK(Router) list
004C 76 Signed 2 NIDRXCTR Count of Router entries
004E 78 Signed 2 NIDSEQ DIAG2A8 Sequence Counter
Multi-VSwitch LAG
- Pointers to Take-Over NIDBKs for the network connection
- Anchored by VQSTKNHD
0050 80 Address 4 NIDTKNXT HL Pointer to next TakeOver NID
0054 84 Address 4 NIDTKPRV HL Pointer to prev TakeOver NID
The NID Spin Lock (NIDSPNLK) serializes the
following fields:
NIDGWSTS - Gateway status flag
NIDCNTRL - Device control flag
NIDCPEBK - Pointer to the SUSPEND CPEBK
NIDPNDFN - Function being suspended (see NIDGWFCN)
NIDNDMCT - Count of pending messages
NIDQID - Queue ID
NIDNDMHD - Pointer to the first message (NDMBK)
NIDNDMTL - Pointer to the last message (NDMBK)
The NIDSPIN Macro found in this COPY File should be used
to acquire and release the NID Spin Lock.
0058 88 Signed 4 * Reserved for Future IBM Use
005C 92 Address 4 NIDCPEBK HL pointer to SUSPEND CPEBK
0060 96 Address 4 * Reserved for Future IBM Use
Two Flags for Promiscuous Mode: NIDPRMFG records the
settings from the adapter or the user (via SET NIC) or the
ADMIN (via TRSOURCE ENABLE). NIDPRMAC is used to provide
a check point in case the real hardware implements Prom.
Mode. If NIDPRMFG is 80 and the NICBK is authorized
NICCFLG is 02, then NIDPRMAC is 80. When the NICBK is
offline the NIDPRMAC field will be 00.
0064 100 Bitstring 1 NIDPRMFG Promiscuous Mode Flag
.... .... NIDPRMOF X'00' NIDPRMOF Promiscuous Mode
is inactive
1... .... NIDPRMON X'80' NIDPRMON Promiscuous Mode
is active
.1.. .... NIDTRACE X'40' NIDTRACE Promiscuous Mode
Trace is active
0065 101 Bitstring 1 NIDPRMAC Promiscuous Active Flag
1... .... NIDPRMAD X'80' NIDPRMAD Promiscuous Mode
on Adapter
..1. .... NIDPRMER X'20' NIDPRMER Promiscuous Mode
Error
EQDIO Device Simulation Fields
- NIDCPSEQ: Contains a sequence number to be used in the
IPCSEQ field for adapter initiated requests.
It should be incremented by 1 for each adapter
initiated request from this device.
- NIDGLVLN: Contains the Global VLAN if one has been set
for an EQDIO device.
- NIDGLMAC: Contains the Global VMAC if one has been set
for an EQDIO device.
- NIDGNETM: Contains the Global IPv4 NET Mask if one has
been set for an EQDIO device.
0066 102 Signed 2 NIDCPSEQ EQDIO Sequence Number for Adapter
Generated Requests
0068 104 Dbl-Word 8 NIDEQGBL (0) EQDIO Global VLAN & MAC
0068 104 Bitstring 2 NIDGLVLN EQDIO Global VLAN id (if set)
006A 106 Bitstring 6 NIDGLMAC EQDIO Global MAC Addr (if set)
0070 112 Signed 4 NIDGNETM EQDIO Global IPv4 NET Mask
0074 116 Signed 4 * Reserved for Future IBM Use
VLAN Support Fields
NIDFLAG1 is used for the general VLAN cases (when no
global VLAN ID is set) and for layer 2 VLAN support. When
a global VLAN ID is set, the NIDVLAN_GBLID flag will be on
and the logic should defer to NIDFLAG4 and NIDFlAG6 for
specifics.
NIDFLAG4 is used for IPv4 global VLAN traffic and
conflicts.
NIDFLAG6 is used for IPv6 global VLAN traffic and
conflicts.
0078 120 Bitstring 1 NIDFLAG1 VLAN support flag
1... .... NIDVLAN_ENABLED
X'80' NIDVLAN_ENABLED VLAN
support is enabled EQU X'40'
Reserved EQU X'20' Reserved EQU
X'10' Reserved
.... 1... NIDVLAN_FILTER X'08' NIDVLAN_FILTER VLAN Filter
by VID set EQU X'04' Reserved EQU
X'02' Reserved EQU X'01' Reserved
0079 121 Bitstring 1 NIDFLAG4 VLAN support flag for IPv4 EQU
X'80' Reserved
.1.. .... NIDVLAN_GBLPRT X'40' NIDVLAN_GBLPRT VLAN Global
Priority NIDGVPRT
..1. .... NIDVLAN_GBLID X'20' NIDVLAN_GBLID VLAN Global
ID in NIDGVID(4 or
...1 .... NIDVLAN_CONFLICT
X'10' NIDVLAN_CONFLICT VLAN
Conflict detected EQU X'08'
Reserved
.... .1.. NIDVLAN_FORCED X'04' NIDVLAN_FORCED VLAN Forced
by System EQU X'02' Reserved
.... ...1 NIDVLAN_GBLCONFL
X'01' NIDVLAN_GBLCONFL VLAN
Conflict with Global V
007A 122 Bitstring 1 NIDFLAG6 VLAN support flag for IPv6
.1.. .... NIDVLAN_GBLPRT X'40' NIDVLAN_GBLPRT VLAN Global
Priority NIDGVPRT
..1. .... NIDVLAN_GBLID X'20' NIDVLAN_GBLID VLAN Global
ID in NIDGVID(4 or
...1 .... NIDVLAN_CONFLICT
X'10' NIDVLAN_CONFLICT VLAN
Conflict detected EQU X'08'
Reserved
.... .1.. NIDVLAN_FORCED X'04' NIDVLAN_FORCED VLAN Forced
by System EQU X'02' Reserved
.... ...1 NIDVLAN_GBLCONFL
X'01' NIDVLAN_GBLCONFL VLAN
Conflict with Global V
007B 123 Bitstring 1 NIDRTFLG Router Flags
1... .... NIDRTPRM X'80' NIDRTPRM - Primary Router
.1.. .... NIDRTSEC X'40' NIDRTSEC - Secondary Router
..1. .... NIDRTMCR X'20' NIDRTMCR - Multicast Router
007C 124 Bitstring 4 * Reserved
Current IEEE VLAN Priority
When NIDVLAN_GBLPRT==1 it means NIDGVPRT has been set
by the device owner (Global Priority). NIDGVPRT is
merged into NIDGVTAG.
0080 128 Signed 2 NIDGVPRT Global VLAN Priority
0082 130 Signed 2 NIDGVPRT6 Global VLAN Priority
Current IEEE VLAN ID
When NIDVLAN_GBLID==1 it means NIDGVID has been
set by the device owner (Global VLAN ID). When
NIDVLAN_FORCED==1 it means NIDGVID has been set
by the system (which may override the owner).
NIDGVID is merged into NIDGVTAG.
0084 132 Signed 2 NIDGVID Global VLAN ID IPv4
00000000 NIDVLAN_NULL 0 NIDVLAN_NULL - VLAN 0 (NULL tag
/ untagged)
00000FFE NIDVLAN_LAST 4094 NIDVLAN_LAST - Last valid
VLAN
0086 134 Signed 2 NIDGVID6 Global VLAN ID IPv6
If NIDVLAN_GBLID==1 Set NIDGVTAG on every outbound frame.
0088 136 Signed 2 NIDGVTAG Effective VLAN tag IPv4
NIDGVTAG NIDPRMSK X'E000' NIDPRMSK VLAN Priority
Mask
NIDGVTAG NIDIDMSK X'0FFF' NIDIDMSK VLAN ID Mask
008A 138 Signed 2 NIDGVTAG6 Effective VLAN tag IPv6
008C 140 Bitstring 4 * reserved
NIDDVACT contains the TOD value for the most recent:
(a) SIGA instruction executed by the virtual host, or
(b) Successful installation of data into the virtual
input queue for this session.
0090 144 Dbl-Word 8 NIDDVACT Active Device Timestamp (TOD)
0098 152 Address 4 NIDSESBK Pointer to the SESBK
009C 156 Address 4 NIDPFPNT Front Ptr for list of Prom NIDBK
EQDIO UpLink Fields. Serialized by NIDCPLCK.
- NIDIFLGS: UpLink Device Initialization
- NIDISTAT: Current UpLink Device Initialization State
00A0 160 Bitstring 1 NIDIFLGS UpLink Device Initialization
1... .... NIDIACT X'80' NIDIACT - Device
Initialization Active
00A1 161 Bitstring 1 NIDISTAT UpLink Device Init State
00000000 NIDISTAT_NOTINIT
X'00' NIDISTAT_NOTINIT Not
Initialized
00000008 NIDISTAT_IDX X'08' NIDISTAT_IDX IDX Exchange
00000010 NIDISTAT_SETGROUP
X'10' NIDISTAT_SETGROUP
SETGROUPPARMS
00000018 NIDISTAT_STOPLAN
X'18' NIDISTAT_STOPLAN STOPLAN
00000020 NIDISTAT_STRTLAN
X'20' NIDISTAT_STRTLAN STRTLAN
00000028 NIDISTAT_DEDICATE
X'28' NIDISTAT_DEDICATE DEDICATE
ADAPTER
00000030 NIDISTAT_ISOLATE
X'30' NIDISTAT_ISOLATE Set Access
Control: I
00000038 NIDISTAT_SETMACPF
X'38' NIDISTAT_SETMACPF SETVMAC
MAC Prefix
00000040 NIDISTAT_DEACTIVATED
X'40' NIDISTAT_DEACTIVATED
Deactivate Data Q
00000048 NIDISTAT_ACTIVATED
X'48' NIDISTAT_ACTIVATED Activate
Data Queue
00000050 NIDISTAT_READY X'50' NIDISTAT_READY Ready
00000058 NIDISTAT_SUPPORT
X'58' NIDISTAT_SUPPORT Determine
Assist Supp
00A2 162 Bitstring 2 * Reserved for Future IBM Use
00A4 164 Bitstring 20 * Reserved for Future IBM Use
Additional VLAN Attributes
00B8 184 Signed 4 NIDVLCTR NIDVID entry counter
00BC 188 Signed 2 NIDPVID Port VLAN ID
Additional Device Status Flags.
Serialization Notes on NIDDEVST:
Bits that are being set in NIDDEVST *must* be serialized
by acquiring the MAC Protect Lock (HCPNDFMP).
Serialization Notes on NIDTERM:
TEST and SET Instruction is used to indicate the QDIO
device connection is being terminated due to a security
violation.
00BE 190 Bitstring 1 NIDDEVST Device Status Flags
1... .... NIDMACPR X'80' NIDMACPR - MAC Protection
is enabled
00BF 191 Bitstring 1 NIDTERM Device Termination Pending FLAG
Pointer to the device counters for transmits and
receives. NIDDATA only.
Serialization for NIDCSTRSP is via NICCTRLK.
00C0 192 Address 4 NIDCTRSP Pointer to NID counters
00C4 196 Signed 4 NIDOACTR Overflow Avoidance Counter
NIDLACTS Holds Transmissions per LinkAG Interval
Notes : These counters are only used to determine the
amount of activity for a specific port in order to
balance a network load across a LinkAG port group.
Therefore, for performance reasons there is no
serialization for these counters.
00C8 200 Dbl-Word 8 NIDLACTS (0) Load Balance Interval Counters
00C8 200 Signed 4 NIDLAPRE Previous interval DataGrams
00CC 204 Signed 4 NIDLACUR Current interval DataGrams
00D0 208 Signed 2 NIDDVNUM Device number of OSA
00D2 210 Bitstring 6 NIDDCMAC Current device MAC address
NIDRDTOD contains the TOD value for the most recent
stacked call to the input queue reader (HCPIQRRD).
00D8 216 Dbl-Word 8 NIDRDTOD Reader Activated Timestamp (TOD)
00E0 224 Dbl-Word 8 NIDWRTOD Outbound Process TimeStamp (TOD)
NIDWRTOD contains the TOD value
for the start of the most recent
processing loop for outbound
DataGrams from this device
(HCPVNSDG).
NDMBK Receiver Handler
The CP routine to process NDMBKs it receives from a
virtual switch data transfer. The appropriate NDMBK
handler is assigned when a NIDBK is created.
00E8 232 Address 4 NIDRECV Incoming DataGram Handler
00EC 236 Bitstring 1 NIDCLASS Port Class
00000000 NIDGUEST 0 NIDGUEST Guest Port (real or
simulated)
00000004 NIDPHYUP 4 NIDPHYUP Physical UpLink Port
00000008 NIDBRIDG 8 NIDBRIDG HiperSockets Bridge
Port
0000000C NIDIVLPT 12 NIDIVLPT IVL NIC Port
00000010 NIDTKOVR 16 NIDTKOVR Multi-VSwitch
Take-Over Port
Adapter pCHID (Physical Channel ID Slot in CEC)
The two byte Adapter pCHID (NIDPCHID) is only valid when
NIDPCVLD is on. When the pCHID is valid, it can be used
as CEC wide unique ID to identify this adapter.
00ED 237 Bitstring 3 NIDPCWRD (0) Adapter pCHID
00ED 237 Bitstring 1 NIDPCFLG pCHID Validity
1... .... NIDPCVLD X'80' NIDPCVLD pCHID is Valid
00EE 238 Signed 2 NIDPCHID Adapter pCHID
Port Type Specific Overlay Area
00F0 240 Dbl-Word 8 * (0) Insure DW Alignment of Overlay
00F0 240 Bitstring 32 NIDSPEC NIDBK device redefinition area
Adapter Port Number (Physical Port Number of Adapter)
The one byte OSA Port Number specified by the customer to
used when establishing a network connection.
0110 272 Bitstring 1 NIDRPNUM Adapter's Port Number
0111 273 Bitstring 3 * Reserved for Future IBM Use
Target IP/MAC Address Persistent Cache
Save the Most Recent Outbound IP/MAC Address
0114 276 Signed 4 NIDDXVER Destination Cache Index Version
0118 280 Bitstring 40 NIDCACHE (0) Cached destination information
0118 280 Bitstring 16 NIDIPADD Save outbound IP Address
0128 296 Bitstring 8 NIDDEST (0) Save outbound Link ID
0128 296 Bitstring 2 NIDDVID Outbound VLAN ID
012A 298 Bitstring 6 NIDDVMAC Outbound MAC Address
0130 304 Signed 4 * Reserved for Future IBM Use
0134 308 Address 4 NIDDXNID Destination L:NIDBK pointer
0138 312 Dbl-Word 8 NIDDXLLX (0) *-- Broadcast/Multicast LLXBKs
----*
0138 312 Address 4 NIDLLX01 Primary Destination LLXBK
013C 316 Address 4 NIDLLX02 Secondary Destination LLXBK
*******************************--
--
NID Transmission Queue Array (See NIDTRANS Overlay Below)
The NID Transmission Queue is an eight entry array used
to maintain multiple link lists of L:NDMBKs sent to & from
the VSwitch Port represented by this L:NIDBK. Each entry
contains the following information:
1) Tail PTR / Lock Last or most recent L:NDMBK on
the Queue. The Tail PTR is
also used for the NID Spin
Transmission Lock.
2) Queue Count Number of L:NDMBKs on the Queue
3) Flags Processing Flags
4) Head PTR First or oldest L:NDMBK on Queue
The number of active array entries depends on the type of
Device that the NIDBK represents. Data Plane entries
are grouped first in the array followed by Control Plane
entries. Control Plane is only used for EQDIO.
IVL NIC Port: 3
LAN Management NIC Port: 1
Take-Over Pseudo Port: 1
HiperSockets Logical Guest Port: 1
HiperSockets Bridge UpLink Port: 1
Simulated QDIO NIC: 1
VSwitch QDIO UpLink Port: 4 4 Data Plane
Simulated EQDIO NIC: 5 2 Data Plane &
2 Control Plane
1 ARP
VSwitch EQDIO UpLink Port: 8 5 Data Plane &
2 Control Plane
1 Unsolit Msgs
A 9th queue has been created (NIDTKOVRED) for handling
NIDBKs when the IVL takeover operation occurs. This is
for both QDIO and EQDIO.
For an UpLink Port, there can be up to four entries used
for QDIO & EQDIO Data Plane outbound transmissions at four
different priorities.
NOTES : The array entry (ie 0-5) has no direct correlation
to the Queue ID. For example, array entries
0-3 are for the 4 Data Plane Output Queues,
which are Queue IDs 3-6 for an EQDIO UpLink.
The four transmission queues are used by the sending
VSwitch port to determine the sending priority of the
L:NDMBK being sent to this port. The queue priority
determines the order L:NDMBKs are inserted into the
Input QDIO Queue of a simulated port or the Output QDIO
Queue for an UpLink Port. The sending port determines
the queue and transmission priority as defined below:
QUEUE 0 Highest Priority used for all CP initiated
packet transmissions
QUEUE 1 HIGH Guest Priority assigned by the system
administrator by NICDEF or SET VSwitch.
QUEUE 2 NORMAL Guest Priority assigned by the system
administrator by NICDEF or SET VSwitch or
the default assigned priority.
QUEUE 3 LOW Guest Priority assigned by the system
administrator by NICDEF or SET VSwitch.
NIDTIDX is a 16 entry array of NIDTRANS Offsets
whose values are initialized depending on the type of
device. The value of each entry corresponds to the
offset (in bytes) into the NIDTRANS array.
0140 320 Dbl-Word 8 * (0) Insure DW Alignment of Overlay
0140 320 Bitstring 176 NIDTRANS NID Transmission Queues (11)
NID Trans Offset Array
01F0 496 Dbl-Word 8 * (0)
01F0 496 Bitstring 16 NIDTIDX NIDTRANS Offsets (16 entries)
0200 512 Dbl-Word 8 * Reserved for Future IBM Use
EQDIO Control Plane Lock
The Control Plane Lock is used to serialize control plane
operations. Obtaining this lock EXCLUSIVE allows an
operation to completely suspend the control plane when
necessary.
0208 520 Dbl-Word 8 NIDCPLCK (3) Control Plane Lock Word
EQDIO Control Plane State
The Control Plane is governed by a Finite State Machine
to ensure the proper sequence of events occur.
0220 544 Bitstring 1 NIDCPSTA Control Plane State
00000000 NIDCPSTA_INIT X'00' NIDCPSTA_INIT Initial State
00000010 NIDCPSTA_IDX X'10' NIDCPSTA_IDX Interface
Reset
00000020 NIDCPSTA_STRTLAN
X'20' NIDCPSTA_STRTLAN Initialize
Protocol
00000030 NIDCPSTA_STOPLAN
X'30' NIDCPSTA_STOPLAN Protocol
Reset
000000F0 NIDCPSTA_ACTIVATED
X'F0' NIDCPSTA_ACTIVATED Data
Plane Operatio
000000E0 NIDCPSTA_DEACTIVATED
X'E0' NIDCPSTA_DEACTIVATED Data
Plane Suspen
0221 545 Bitstring 3 * Reserved for future IBM use
EQDIO Simulated NIC NIDTRANS Layout
NIDCPOUT is for Control Plane requests initiated by the
guest on Control Plane Output Queue 1.
NIDCPIN is for Control Plane responses or Adapter
Initiated requests to be placed on the guest's
Control Plane Input Queue 0.
NIDDPOUT is for Data Plane transmissions from an EQDIO
output queue going to the LAN.
NIDDPIN is for Data Plane transmissions from an EQDIO
input queue going to the guest.
NIDDPARP is used by ARP Offload Assist Simulation to
intercept and asynchronously ARPs arriving on a EQDIO
Data Plane Input Queue. (only for simulated EQDIO NIC)
000001F3 NIDCPOUT NIDTIDX+3 Offset to EQDIO Control
Plane OUTBOUND queue entry in
NIDTRANS array
000001F2 NIDCPIN NIDTIDX+2 Offset to EQDIO Control
Plane INBOUND queue entry in
NIDTRANS array
000001F1 NIDDPOUT NIDTIDX+1 Offset to EQDIO Data
Plane OUTBOUND queue entry in
NIDTRANS array
000001F0 NIDDPIN NIDTIDX+0 Offset to EQDIO Data
Plane INBOUND queue entry in
NIDTRANS array
000001F4 NIDDPARP NIDTIDX+4 Offset to EQDIO Data
Plane INBOUND ARP Assist Queue in
NIDTRANS array
EQDIO UpLink Port NIDTRANS Layout
NIDDPPT1 thru NIDDPPT4 is for OUTBOUND Data Plane
tranmissions.
NIDDPPT1 - CP Priority NICTXCP, corresponds to NIDD_QO1
NIDDPPT2 - Hi Priority NICTXHI, corresponds to NIDD_QO2
NIDDPPT3 - Normal Pri NICTXNM, corresponds to NIDD_QO3
NIDDPPT4 - Lo Priority NICTXLO, corresponds to NIDD_QO4
NIDVCOUT is for Control Plane requests initiated by
the VSwitch on the Control Plane Output Queue 1.
Corresponds to NIDC_QO.
NIDVCIN is for Control Plane responses received by
the VSwitch on the Control Plane Input Queue 0.
Corresponds to NIDC_QI.
NIDVDIN is for Data Plane INBOUND transmissions received
by the VSwitch on the single Data Plane Input Queue.
Corresponds to NIDD_QI.
NIDCPAIN is for Control Plane Adapter Initiated messages
received by the VSwitch on the Control Plane Input Queue.
Corresponds to NIDC_QI.
000001F0 NIDDPPT1 NIDTIDX+0 Offset to EQDIO Data
Plane OUTBOUND Priority 1 in
NIDTRANS array
000001F1 NIDDPPT2 NIDTIDX+1 Offset to EQDIO Data
Plane OUTBOUND Priority 2 in
NIDTRANS array
000001F2 NIDDPPT3 NIDTIDX+2 Offset to EQDIO Data
Plane OUTBOUND Priority 3 in
NIDTRANS array
000001F3 NIDDPPT4 NIDTIDX+3 Offset to EQDIO Data
Plane OUTBOUND Priority 4 in
NIDTRANS array
000001F4 NIDVCOUT NIDTIDX+4 Offset to EQDIO Control
Plane OUTBOUND queue entry in
NIDTRANS array
000001F5 NIDVCIN NIDTIDX+5 Offset to EQDIO Control
Plane INBOUND queue entry in
NIDTRANS array
000001F6 NIDVDIN NIDTIDX+6 Offset to EQDIO Data
Plane INBOUND queue entry in
NIDTRANS array
000001F7 NIDCPAIN NIDTIDX+7 Offset to EQDIO Adapter
Initiated Msg on Control Plane
queue in NIDTRANS array
000001F8 NIDTKOVRED NIDTIDX+8 Offset to IVL Take Over
array
IVL NIC Port NIDTRANS Layout
NIDDIVL1 thru NIDDIVL2 is for OUTBOUND Data Plane XFERs
NIDDIVL1 - CP Priority NICTXCP, corresponds to NIDD_QO1
Used for IVL Management Commands
NIDDIVL2 - Hi Priority NICTXHI, corresponds to NIDD_QO2
Used for MAC Take-Over Traffic
NIDIVLTX is an interal NIDTRANS Queue used by the HCPVNET
MACRO to send IVL Management Commands and/or MAC
Take-Over traffic to the IVL Port.
000001F0 NIDDIVL1 NIDTIDX+0 Offset to IVL Port Data
Plane OUTBOUND Priority 1 in
NIDTRANS array
000001F1 NIDDIVL2 NIDTIDX+1 Offset to IVL Port Data
Plane OUTBOUND Priority 2 in
NIDTRANS array
000001F2 NIDIVLTX NIDTIDX+2 Offset to HCPVNET IVL
NIC Port OUTBOUND Transmission Q
in NIDTRANS array
00000003 NIDIVL# 3 Total Number of IVL Port
NIDTRAN entries
0224 548 Signed 4 * Reserved for Future IBM Use
0228 552 Address 4 NIDICBLK Pointer to the ICBLK
EQDIO Adapter's CAIA (Latest Copy)
Serialized : NID Control Plane Lock (NIDCPLCK)
Control Plane Lock must be HELD EXCLUSIVE when setting
NIDAIBLK or modifying the contents of the AIBLK. Data
consistency is maintain as long as any logic referencing
AIBLK fields holds the NIDCPLCK lock either shared or
exclusive.
022C 556 Address 4 NIDAIBLK Pointer to the AIBLK
Data Plane MIQ/IWQ (Multiple Input Queues) Simulation
There can be up to 8 IWQ queues with the queue id
ranging from 2-32.
A single EQDIO Data Plane Input Queue is typically used
for all incoming packets from a network. This input queue
is called the default Data Plane Queue and is assigned to
the Data Plane Input Queue with the lowest number queue ID
defined via an Establish-QDIO-Queues CCW.
An operating system has the option to exploit multiple
input queues for arriving traffic and spread specific
incoming packet types across multiple input queues. This
is accomplished by defining a set of routing variables
using the SET_INTERFACE_PARMS SET_QID Control Command.
Although this Control Command is not fully supported with
EQDIO vNIC Support, VICOM allows a customer to simulate
this packet routing function in the following two ways:
Default Queue Reassignment (Poor Man's IWQ)
The default Data Plane Input Queue for an interface with
more than one input queue can be changed from the input
queue with the lowest queue id to any other Data Plane
Input Queue by using the VICOMDEV NET IWQ Command. Once
the command is issued, all future incoming packets will
start arriving on the specified input queue.
When the default queue id is set this way, the NIDDPQ_USER
bit will be turned ON.
Assign IPv4 Routing Variables (Middle Man's IWQ)
The customer also has the capability to assign up to four
IPv4 routing variables (IP1-IP4), which will route packets
with the specified Target IP Address to a specific input
queue. This is done using VICOMDEV NET IWQ IPx version of
the VICOM Command.
When the one or more routing variables are set this way,
the NIDDPQ_IP bit will be turned ON.
0230 560 Dbl-Word 8 * (0) Insure DW alignment
0230 560 Bitstring 1 NIDQFLGS NID Queue Flags
1... .... NIDDPQ_USER X'80' NIDDPQ_USER DEFAULT IWQ
Queue ID Set by User
.1.. .... NIDDPQ_IP X'40' NIDDPQ_IP Routing Variable
Set by User
0231 561 Bitstring 1 NIDDP_QID1 Default Data Plane Input QID
0232 562 Bitstring 1 * Reserved for Future IBM Use
ARP Off-Load Assistance Initialization Flags
Serialized : NID Control Plane Lock (NIDCPLCK)
0233 563 Bitstring 1 NIDARPFG ARP-Off-Load Flags
1... .... NIDARPAC X'80' NIDARPAC Deferred ARP
Offload Task Active
.1.. .... NIDEFRDY X'40' NIDEFRDY Defer READY
Processing Active
..1. .... NIDLACP X'20' NIDLACP LACP MAC Registered
in Adapter
0234 564 Address 4 NIDRVADR NID Routing Table HL:Address
ARP Off-Load Deferred ARP Reply Cyclic List
NIDARPCL points to the first Deferred ARP Reply NDMBK on
the cyclic list or zero for none. The cyclic list is used
by ARP Offload Assist to keep track of ARPs issued on
behalf of the guest for f NIDCPLMTimulated vNIC device
exploiting the assist.
Serialized : NID Control Plane Lock (NIDCPLCK)
0238 568 Address 4 NIDARPCL ARP-Off-Load Cyclic List
023C 572 Address 4 NIDMPCBK L:MPCBK Address
0240 576 Address 4 NIDVQSBK L:VQSBK Address
0244 580 Signed 4 * Reserved for Future IBM Use
End of NIDBK Structure
00000248 NID$END * End of NIDBK
00000248 NIDBKLN *-NIDBK Length of NIDBK in bytes
00000049 NIDBKSZ (*-NIDBK+7)/8 Size of NIDBK in
doublewords
***
*** NID Transmission Queue Overlay Definitions
***
*** Serialized : NID Transmission Spin Lock
***
*** See comments above regarding the definition of
*** each Queue Entry.
***
0140 320 Dbl-Word 8 NIDXSTRT (0) Start of NID Trans Q Entry
nb: There is significant use of NIDNDMPT
Best to cruise "NIDNDM".
0140 320 Dbl-Word 8 NIDNDMPT (0) Pending Transmission Queue
0140 320 Address 4 NIDNDMHD Pointer to first L:NDMBK (Zero
when empty.)
0144 324 Address 4 NIDNDMTL Pointer to last L:NDMBK (Zero
when empty.)
0148 328 Signed 2 NIDNDMCT Count of pending messages
NIDNDMCT NIDGPLMT 1024 NIDGPLMT Guest Port MSG
Threshold
NIDNDMCT NIDUPLMT 4096 NIDUPLMT UpLink Port MSG
Threshold
NIDNDMCT NIDBCLMT NIDUPLMT NIDBCLMT Broadcast Storm
Threshold
11.. 1... NIDCPLMT 200 NIDCPLMT Control Plane MSG
Threshold
NIDNDMCT NIDAPLMT 512 NIDAPLMT ARP Message
Threshold
014A 330 Bitstring 1 NIDQID Queue ID
014B 331 Bitstring 1 NIDFLAGS Processing Flags
1... .... NIDITASK X'80' NIDITASK QDIO/EQDIO NID
Processing Task is ACTIVE
(Flagged for stack, actually
stacked, or running)
.1.. .... NIDITASKR X'40' NIDITASKR QDIO/EQDIO NID
Processing task is running. Not
globally implemented.
014C 332 Address 4 NIDSPNLK NID Spin Lock
00000010 NIDXSIZE *-NIDXSTRT Size in Bytes of
Single Entry
0000000F NIDXMASK B'1111' Valid Index Boundary Mask
for DATA Plane Entries
00000000 NIDXENT0 NIDXSIZE*0 Entry 0 Offset
00000010 NIDXENT1 NIDXSIZE*1 Entry 1 Offset
00000020 NIDXENT2 NIDXSIZE*2 Entry 2 Offset
00000030 NIDXENT3 NIDXSIZE*3 Entry 3 Offset
00000040 NIDXENT4 NIDXSIZE*4 Entry 4 Offset
00000050 NIDXENT5 NIDXSIZE*5 Entry 5 Offset
00000060 NIDXENT6 NIDXSIZE*6 Entry 6 Offset
00000070 NIDXENT7 NIDXSIZE*7 Entry 7 Offset
00000030 NIDXLAST NIDXENT3 Last Valid Offset within
NID Trans Array for QDIO UpLink
Entries
00000070 NIDXLEQD NIDXENT7 Last Valid Offset within
NID Trans Array for EQDIO UpLink
Entries
00000008 NIDXEENT NIDXLEQD/NIDXSIZE+1 # of EQDIO
Entries in the array
000000A0 NIDCPLST L'NIDTRANS-NIDXSIZE Last Valid
Offset within NID Trans Array for
all entries (7)
0000000B NIDXENTY L'NIDTRANS/NIDXSIZE Number of
NIDTRANS Entries
***
*** End of NID Transmission Array
***
***
EQDIO UpLink Device Queue ID (QID)
Control Plane - 1 input 1 output queues QID 0 and 1
Data Plane - 1 input 4 output queues QID 2 thru 6
.... .... NIDC_QI X'00' Control Plane Input Queue
.... ...1 NIDC_QO X'01' Control Plane Output Queue
.... ..1. NIDD_QI X'02' Data Plane Input Queue
.... ..11 NIDD_QO1 X'03' Data Plane Output Q
Priority 1
.... .1.. NIDD_QO2 X'04' Data Plane Output Q
Priority 2
.... .1.1 NIDD_QO3 X'05' Data Plane Output Q
Priority 3
.... .11. NIDD_QO4 X'06' Data Plane Output Q
Priority 4
Multi-VSwitch LAG Take-over Overlay (NIDCLASS = NIDTKOVR)
This overlay area is only valid in a L:NIDBK used to track
a Take-Over MAC.
- Failing network connection's identification
00F0 240 Bitstring 14 NID_HOSTTO (0) Take-Over Host
00F0 240 Bitstring 8 NID_HOSTNAME Failing Host Name (VSwitch Name)
00F8 248 Bitstring 6 NID_HOSTMAC Failing Host Unicast MAC Address
00FE 254 Bitstring 2 * Reserved for future IBM use
0100 256 Dbl-Word 8 * (2) Reserved for future IBM use
UpLink Port Overlay (NIDCLASS = NIDPHYUP)
This overlay area is only valid in a L:NIDBK used for a
Physical UpLink Port on a VSwitch.
00F0 240 Dbl-Word 8 NID_TOTPFCNT Total Previous Frame Load BAL
Count for all MVLAG VSwitches
sharing this port in the LAG
00F8 248 Dbl-Word 8 * (3) Reserved for future IBM use
***
*** End of Port Specific Overlay Area Definitions
***
NIDRV - NID Routing Variable Table Entry
The NIDRV defines one element in the 4 entry array.
(one entry for each of the possible 4 assigned routing
table variables).
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure NIDRV Network Interface Device Block.
0000 0 Bitstring 1 NIDRQID Queue ID Assigned
0001 1 Bitstring 3 * Reserved for Future IBM Use
0004 4 Signed 4 NIDRIPA IPv4 Address in Hex
00000008 NIDRSIZE *-NIDRV Size of a Single Routing
Table entry in bytes
00000004 NIDRENT 4 Number of Entries in Routing
Table
00000020 NIDRBYTS NIDRENT*NIDRSIZE Size of Routing
Variable Table in Bytes
00000004 NIDRDWS (NIDRBYTS+7)/8 Size of Routing
Variable Table in DWs
NIDVID - Define the Session VID Array Format
The NIDVID defines one element in the 4K VLAN Array
(one entry for each VLAN number 0-4095). Note that
VLAN(0) and VLAN(4095) are not valid VLAN groups.
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure NIDVID Network Interface Device Block.
0000 0 Bitstring 1 NIDVIDX Status of VID in NIDVID array
| |