Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
MSVBK
Control Block Contents
MSVBK DSECT
Cross Reference (Contains links to field and bit definitions)
MSVBK Prolog
Name : HCPMSVBK Description: Mappings for MAC Services Control Block DSECT : MSVBK Function : The MSVBK structure describes the fields needed for virtual MAC address services. Located by - VMDMSVBK = Chain for VDEV MSVBKs anchored in BASE VMDBK only SLMMSVBK = Chain for VSWITCH MSVBKs anchored by SLMMSVBK CREATED BY : Storage for a VDEV MSVBK is reserved by entry point HCPMLMGL. Storage for a VSWITCH MSVBK is reserved by entry point HCPMLMVS. DELETED BY : VMDBK MSVBKs are deleted at LOGOFF by HCPMLMLG. VSWITCH MSVBKs are deleted at DETACH VSWITCH by HCPMLMVS. REFERENCES : SERIALIZED : For VDEV MSVBKs: Compare and swap logic serializes additions to the MSVBK chain. MSVBKs are not deleted except at LOGOFF. For VSWITCH MSVBKs: The SLMMACLK serializes changes to the chain. An MSVBK is created at VSWITCH LANBK creation and deleted by DETACH VSWITCH. MSVLKWRD serializes changes to a single MSVBK. NOTES : None. General Note : 1. There are two MAC fields and two MAC status flags. A pending MAC is set and allocated (if USER) when a SET NIC MACID is issued and it is possible that the stack may still be using the current MAC. We don't want to release the current MAC until receiving an indication that the stack has restarted (when it requests the MAC during its link initialization using Diagnose X'26C', Subcode X'30', Opcode X'00'). 2. An MSVBK s allocated at the following times. - DEFINE NIC: (HCPNICCX) An MSVBK is created for the base device number. Guest VMDMSVBK anchor. - SET NIC MACID command: (HCPNICST) An MSVBK is created for the non-base device number of a simulated device, or a VDEV that does not yet exist. Guest VMDMSVBK anchor. - DIAG X'26C', SUBCODE X'30', OPCODE X'00': (HCPMLMGM) An MSVBK is created if one does not exist for the device number requested in the diagnose parameters. This is how it is created for a dedicated device if no SET NIC MACID command was issued. Guest VMDMSVBK anchor. - VSWITCH RDEV initialization: (HCPVLCCN call to HCPMLMVR) when doing back end of initialization. Controller VMDMSVBK anchor. - DEFINE VSWITCH: (HCPSWMMA call to HCPMLMVS). SLMMSVBK anchor. 3. MACs allo ated for simulated devices (guest NICs), dedicated devices, or SET NIC MACID commands, are released under the following circumstances. a) LOGOFF: All allocated MAC addresses are released. b) DIAG X'26C', Subcode X'30', Opcode X'00'issued: If a pending MAC is defined, the current MAC is freed and the pending MAC becomes the current MAC (and is returned in the diagnose output buffer). c) DETACH NIC: If a pending MAC is defined, the current MAC is freed and the pending MAC becomes the current MAC. d) SET NIC MACID command issued for the device number: If a pending MAC is defined and allocated, the pending MAC is freed and the definition replaced. 4. A MAC all cated for a VSWITCH RDEV is released when the RDEV connection is broken (HCPVLCDC call to HCPMLMVR). 5. A MAC all cated for a VSWITCH is released at DETACH VSWITCH (HCPVLFRL call to HCPMLMVS).
MSVBK Control Block Content
MSVBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure MSVBK Mappings for MAC Services Control Block 0000 0 Address 4 MSVNEXT Pointer to Next MSVBK 0004 4 Signed 4 * Reserved 0008 8 Dbl-Word 8 MSVLKWRD (3) MAC Services lock word 0020 32 Signed 4 MSVVDEVN (0) Virtual device number 0020 32 Bitstring 1 MSVVDFLG Virtual Device Type Flag 1... .... MSVVSWIT X'80' MSVVSWIT Indicates VSWITCH pseudo-VDEV number 0021 33 Bitstring 1 * Reserved for future IBM use 0022 34 Signed 2 MSVDEV# Device Number 0024 36 Signed 4 MSVVMDBK VDEV MSVBKs: Base VMDBK of owner VSWITCH MSVBKs: SYSTEM VMDBK 0028 40 Bitstring 1 MSVSTAT MSVBK status flag 1... .... MSVDIAG X'80' MSVDIAG Diagnose x'26C' subcode x'30' issued 0029 41 Bitstring 7 * Reserved MAC fields and status flags exist for the CURRENT MAC the PENDING MAC and the ADAPTER MAC. Flag definitions are the same for all status fields. 0030 48 Character 6 MSVCMAC (0) Current MAC address field 0030 48 Bitstring 3 MSVCMACP Current MAC Prefix field 0033 51 Bitstring 3 MSVCMACS Current MAC Suffix (MACID) field 0036 54 Bitstring 1 MSVCFL Current MAC Services Flag HCPNIC has a dependency that this field follows MSVCMAC 1... .... MSVXFLAL X'80' MSVXFLAL MACID is allocated .... 1... MSVXFLUS X'08' MSVXFLUS USER MACID requested .... .1.. MSVXFLSY X'04' MSVXFLSY SYSTEM MACID requested Flag definitions for MSVCFL, MSVPFL, MSVAFL. 0037 55 Bitstring 1 * Reserved 0038 56 Character 6 MSVPMAC (0) Pending MAC address field 0038 56 Bitstring 3 MSVPMACP Pending MAC Prefix field 003B 59 Bitstring 3 MSVPMACS Pending MAC Suffix (MACID) field 003E 62 Bitstring 1 MSVPFL Pending MAC Services Flag HCPNIC has a dependency that this field follows MSVPMAC 1... .... MSVXFLAL X'80' MSVXFLAL MACID is allocated .... 1... MSVXFLUS X'08' MSVXFLUS USER MACID requested .... .1.. MSVXFLSY X'04' MSVXFLSY SYSTEM MACID requested 003F 63 Bitstring 1 * Reserved MSVAMAC and MSVAFL are set only when MSVVDEVN=NICBASE. 0040 64 Character 6 MSVAMAC (0) Adapter MAC address field 0040 64 Bitstring 3 MSVAMACP Current MAC Prefix field 0043 67 Bitstring 3 MSVAMACS Current MAC Suffix (MACID) field 0046 70 Bitstring 1 MSVAFL Current MAC Services Flag 1... .... MSVXFLAL X'80' MSVXFLAL MACID is allocated .... 1... MSVXFLUS X'08' MSVXFLUS USER MACID requested .... .1.. MSVXFLSY X'04' MSVXFLSY SYSTEM MACID requested 0047 71 Bitstring 1 * Reserved 0048 72 Dbl-Word 8 * Reserved 00000050 MSVBKSZ *-MSVBK Size of MSVBK in bytes 0000000A MSVBKSZD (*-MSVBK+7)/8 Size of MSVBK in doublewords
MSVBK Storage Layout
*** MSVBK - Mappings for MAC Services Control Block * * +---------------------------+---------------------------+ * 0 | MSVNEXT |///////////////////////////| * +---------------------------+---------------------------+ * 8 | | * = MSVLKWRD = * | | * +------+------+-------------+---------------------------+ * 20 |:VDFLG|//////| MSVDEV# | MSVVMDBK | * +------+------+-------------+---------------------------+ * 28 |:STAT |////////////////////////////////////////////////| * +------+-------------+--------------------+------+------+ * 30 | MSVCMACP | MSVCMACS |MSVCFL|//////| * +--------------------+--------------------+------+------+ * 38 | MSVPMACP | MSVPMACS |MSVPFL|//////| * +--------------------+--------------------+------+------+ * 40 | MSVAMACP | MSVAMACS |MSVAFL|//////| * +--------------------+--------------------+------+------+ * 48 |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 50 * *** MSVBK - Mappings for MAC Services Control Block
MSVBK Cross Reference
Symbol Dspl Value -------------- ---- ----- MSVAFL 0046 MSVAMAC 0040 MSVAMACP 0040 MSVAMACS 0043 MSVBKSZ 0048 00000050 MSVBKSZD 0048 0000000A MSVCFL 0036 MSVCMAC 0030 MSVCMACP 0030 MSVCMACS 0033 MSVDEV# 0022 MSVDIAG 0028 80 MSVLKWRD 0008 MSVNEXT 0000 MSVPFL 003E MSVPMAC 0038 MSVPMACP 0038 MSVPMACS 003B MSVSTAT 0028 MSVVDEVN 0020 MSVVDFLG 0020 MSVVMDBK 0024 MSVVSWIT 0020 80 MSVXFLAL 0036 80 MSVXFLAL 003E 80 MSVXFLAL 0046 80 MSVXFLSY 0036 04 MSVXFLSY 003E 04 MSVXFLSY 0046 04 MSVXFLUS 0036 08 MSVXFLUS 003E 08 MSVXFLUS 0046 08
Copyright IBM Corporation, 1990, 2009