Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

#### MSVBK

Prolog

Control Block Contents
MSVBK DSECT

Storage Layout

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

This information is based on z/VM V6R1.0. Last updated on 18 Feb 2010 at 08:51:22 EDT.
Copyright IBM Corporation, 1990, 2008