You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
9891 lines
319 KiB
XML
9891 lines
319 KiB
XML
<appendix xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xl="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
|
|
<title xml:id="dbdoclet.50569384_75285">A Protocol for VNIC Communications</title>
|
|
|
|
<section>
|
|
<title>Introduction</title>
|
|
<para>The VNIC protocol defined in this appendix defines the protocol to be
|
|
used with VNIC virtual IOA, as defined in
|
|
<xref linkend="dbdoclet.50569366_19541" />. VNIC provides a mechanism which
|
|
minimizes the number of times data is copied within the memory of the
|
|
physical system. The virtual I/O model described herein allows for either
|
|
zero copy using the redirected DMA or single copy when the data is first
|
|
moved to the memory space of firmware before being DMAed to the client
|
|
partition.</para>
|
|
<para>This protocol is designed to fulfill the following
|
|
requirements:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Fast, efficient transfer and reception of Ethernet frames</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Exploitation of adapter multiple transmit and receive queue
|
|
support.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Partition mobility capable</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Promiscuous mode support</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Stateless TCP and IP checksum offload</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>TCP large send offload</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Multiple interrupt source support</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Notification of physical Ethernet link state</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Physical Ethernet link state control if configured</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Statistics, trace, and dump support</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Extensible protocol for future functional additions</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>VNIC Adapter</title>
|
|
<para>The intent of this protocol is to support the implementation, within
|
|
the client logical partition, of a VNIC adapter device driver (VNIC client)
|
|
which is functionally similar to a physical Ethernet adapter device driver.
|
|
The VNIC can send and receive Ethernet packets, add receive buffers to the
|
|
virtualized hardware, handle physical and logical link status, acquire
|
|
hardware statistics, and utilize advanced hardware features like checksum
|
|
offload. The VNIC interface also provides tracing, logging, and dumping
|
|
facilities.</para>
|
|
<para>It is the firm intent of this protocol that no changes be required in
|
|
any layer 3 or higher communication protocol (e.g. TCP, IP, etc.).</para>
|
|
<para>A partition may have multiple VNIC Adapters.</para>
|
|
</section>
|
|
<section>
|
|
<title>Zero Copy DMA Models</title>
|
|
<para>Unlike the Interpartition Logical LAN option (See
|
|
<xref linkend="dbdoclet.50569348_71217" />), the VNIC protocol allows for
|
|
the physical Ethernet adapter associated with the VNIC device to securely
|
|
target memory pages associated with a VNIC adapter for virtual I/O
|
|
operations. LoPAR defines two modes of LRDMA (See
|
|
<xref linkend="dbdoclet.50569348_71217" />).</para>
|
|
<para>The use of Redirected RDMA is completely invisible to the VNIC
|
|
adapter, and has no impact on the VNIC protocol defined here. It is left
|
|
entirely to the discretion of the server firmware whether it first moves
|
|
data from a physical adapter into its own memory before moving (DMAing) the
|
|
data to the VNIC adapter, or whether the physical adapter sets up the I/O
|
|
request in such a way that the physical device DMAs directly to the memory
|
|
of the client adapter. The virtualizing firmware uses the RDMA mode that
|
|
best suits its needs for a given virtual I/O operation.</para>
|
|
</section>
|
|
<section>
|
|
<title>Protocol Overview</title>
|
|
|
|
<para>The CRQ and Sub-CRQ facilities as defined in
|
|
<xref linkend="dbdoclet.50569348_71217" /> are used to send and receive VNIC
|
|
commands to system firmware. The different VNIC command types are defined
|
|
in
|
|
<xref linkend="dbdoclet.50569384_47161" />.</para>
|
|
<para>Throughout this document, boolean values assume 0 to be false, 1 to
|
|
be true. Unless otherwise specified, all lengths are expected to be given
|
|
in terms of bytes. Any setting or capability changed or enabled after a
|
|
successful H_REGISTER_CRQ will be cleared when H_FREE_CRQ is
|
|
performed.</para>
|
|
<para>The format of a VNIC command is shown in
|
|
<xref linkend="dbdoclet.50569384_96342" />. The Command Type field of the
|
|
VNIC command is defined in
|
|
<xref linkend="dbdoclet.50569384_47161" />. The Return Code for a a VNIC
|
|
command is always at offset 12 in the response, as shown in
|
|
<xref linkend="dbdoclet.50569384_96342" />.</para>
|
|
<para>All VNIC commands have VNIC command values from 0x0 to 0x7F. Each
|
|
response to a VNIC command has a VNIC command value that is equal to the
|
|
command with the 0x80 bit in the command turned on.</para>
|
|
<para>In the event firmware receives a command it doesn’t understand,
|
|
a response will be returned with an UnknownCommand return code set at
|
|
offset 12, and the VNIC command type set to the passed in command type with
|
|
the 0x80 bit turned on.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_96342">
|
|
<title>Format of the VNIC command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="9">
|
|
<colspec colname="c1" colwidth="11*" align="center" />
|
|
<colspec colname="c2" colwidth="11*" align="center" />
|
|
<colspec colname="c3" colwidth="11*" align="center" />
|
|
<colspec colname="c4" colwidth="11*" align="center" />
|
|
<colspec colname="c5" colwidth="11*" align="center" />
|
|
<colspec colname="c6" colwidth="11*" align="center" />
|
|
<colspec colname="c7" colwidth="11*" align="center" />
|
|
<colspec colname="c8" colwidth="11*" align="center" />
|
|
<colspec colname="c9" colwidth="11*" align="center" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para><emphasis role="bold">Byte Offset</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">0</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">1</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">2</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">3</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">4</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">5</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">6</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">7</emphasis></para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>0x00</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x80</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Command Type</para>
|
|
</entry>
|
|
<entry nameend="c9" namest="c4">
|
|
<para>Command dependent</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>0x08</para>
|
|
</entry>
|
|
<entry nameend="c5" namest="c2">
|
|
<para>Command dependent</para>
|
|
</entry>
|
|
<entry nameend="c9" namest="c6">
|
|
<para>Return Code or Command Dependent</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_76174">
|
|
<title>VNIC Return Code</title>
|
|
<?dbhtml table-width="80%" ?><?dbfo table-width="80%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="30*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="50*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Architected Return Value</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a value from
|
|
<xref linkend="dbdoclet.50569384_14812" />that contains the high
|
|
level return code for the operation.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Detailed Error Data</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an unarchitected detailed error code
|
|
that can be used by firmware to further classify the error
|
|
returned in the architected return value.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_47161">
|
|
<title>VNIC Command Types</title>
|
|
<tgroup cols="5">
|
|
<colspec colname="c1" colwidth="30*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="15*" align="center" />
|
|
<colspec colname="c4" colwidth="22*" />
|
|
<colspec colname="c5" colwidth="23*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para><emphasis role="bold">Command Type</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">Command value</emphasis></para>
|
|
</entry>
|
|
<entry>
|
|
<para><emphasis role="bold">Sent by</emphasis></para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para><emphasis role="bold">Description</emphasis></para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para><emphasis role="bold">Location</emphasis></para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>VERSION_EXCHANGE</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x01</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to inform firmware of level of protocol VNIC
|
|
supports</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_34836" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VERSION_EXCHANGE_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x81</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to inform VNIC of level of protocol firmware
|
|
supports</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_34836" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>QUERY_CAPABILITY</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x02</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Query firmware for a specific VNIC capability</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_72910" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>QUERY_CAPABILITY_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x82</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response for a QUERY_CAPABILITY</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_72910" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_CAPABILITY</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x03</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Request firmware to start using a specific capability
|
|
value</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_72910" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_CAPABILITY_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x83</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response from firmware to a REQUEST_CAPABILITY
|
|
command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_72910" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>LOGIN</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x04</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to exchange Sub-CRQ information with system firmware
|
|
in preparation for functional use of the virtualized
|
|
adapter</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_24033" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>LOGIN_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x84</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response from firmware with firmware’s Sub-CRQ
|
|
information in preparation for functional use.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_24033" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>QUERY_PHYS_PARMS</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x05</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used by VNIC client to enquire about physical port
|
|
parameters such as line speed, duplex setting, etc.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_19462" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>QUERY_PHYS_PARMS_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x85</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>A response to the QUERY_PHYS_PARMS request containing the
|
|
requested information</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_19462" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>QUERY_PHYS_CAPABILITIES</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x06</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used by VNIC client to enquire about physical port
|
|
capabilities such as line speed.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_19462" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>QUERY_PHYS_CAPABILITIES_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x86</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>A response to the QUERY_PHYS_CAPABILITIES request
|
|
containing the requested information.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_19462" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>SET_PHYS_PARMS</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x07</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used by the VNIC to set physical port parameters such as
|
|
line speed if allowed.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_19462" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>SET_PHYS_PARMS_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x87</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response indicating status of SET_PHYS_PARMS request</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_19462" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>ERROR_INDICATION</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x08</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to indicate to either side of an error
|
|
condition.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_92282" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_ERROR_INFO</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x09</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to request detailed error data about a previous
|
|
asynchronous error condition</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_92282" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_ERROR_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x89</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to return detailed error data in response to a
|
|
request</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_92282" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_DUMP_SIZE</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x0A</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to request an estimate of how much size a VNIC
|
|
collected debug dump will require.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_70585" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_DUMP_SIZE_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x8A</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to inform VNIC of the dump size estimate.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_70585" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_DUMP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x0B</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to request firmware to perform an adapter &
|
|
firmware dump to assist in problem determination</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_70585" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_DUMP_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x8B</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to inform VNIC Client when the requested dump has been
|
|
completed</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_70585" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>LOGICAL_LINK_STATE</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x0C</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used by VNIC Client to tell firmware to start and stop
|
|
packet reception</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_63487" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>LOGICAL_LINK_STATE_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x8C</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to inform VNIC Client of the status of the LINK_STATE
|
|
request</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_63487" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_STATISTICS</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x0D</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to retrieve standard network adapter statistics
|
|
(bytes/packet sent/rcvd, etc.)</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_18536" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_STATISTICS_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x8D</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used to inform VNIC Client when statistics were
|
|
successfully collected</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_18536" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_RAS_COMP_NUM</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x0E</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used by VNIC Client to retrieve the number of independent
|
|
firmware components that can have their RAS capabilities
|
|
controlled in firmware associated with the VNIC</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_69706" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_RAS_COMP_NUM_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x8E</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to the REQUEST_RAS_COMP_NUM command.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_69706" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_RAS_COMPS</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x0F</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Used by VNIC Client to retrieve the list of component ids
|
|
that can have their RAS capabilities controlled in firmware for
|
|
this VNIC.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_69706" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_RAS_COMPS_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x8F</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to the REQUEST_RAS_COMPS_RSP.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_69706" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>CONTROL_RAS</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Request firmware to modify RAS characteristics to allow for
|
|
easier problem determination.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_69706" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>CONTROL_RAS_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x90</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to the CONTROL_RAS command.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_69706" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>COLLECT_FW_TRACE</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x11</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This allows the VNIC Client to collect a trace for a
|
|
firmware component.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_69706" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>COLLECT_FW_TRACE_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x91</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Inform VNIC Client the trace collection is complete</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_69706" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>LINK_STATE_INDICATION</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Inform VNIC Client of link state changes.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_64394" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>CHANGE_MAC_ADDR</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x13</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Request system firmware to change the current VNIC MAC
|
|
address</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_73515" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>CHANGE_MAC_ADDR_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x93</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Inform VNIC Client of MAC address change request
|
|
status</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_73515" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>MULTICAST_CTRL</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x14</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Request system firmware to change current multicast MAC
|
|
address settings</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_44489" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>MULTICAST_CTRL_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x94</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Inform VNIC Client of multicast response</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_44489" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>GET_VPD_SIZE</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x15</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Query firmware for the size of VPD</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_64959" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>GET_VPD_SIZE_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x95</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Return the size of VPD to VNIC client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_64959" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>GET_VPD</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Request system firmware to return VPD associated with
|
|
adapter.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_64959" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>GET_VPD_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x96</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to GET_VPD.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_64959" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>TUNE</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x17</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Pass debugging information to system firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_82039" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>TUNE_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x97</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to TUNE command.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_82039" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>QUERY_IP_OFFLOAD</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x18</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Request details about TCP, UDP, and IP offload
|
|
capabilities</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_86912" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>QUERY_IP_OFFLOAD_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x98</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to QUERY_IP_OFFLOAD command.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_86912" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>CONTROL_IP_OFFLOAD</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x19</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Enable and disable TCP, UDP, and IP offload
|
|
capabilities</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_86912" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>CONTROL_IP_OFFLOAD_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x99</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to CONTROL_IP_OFFLOAD command.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_86912" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>ACL_CHANGE_INDICATION</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x1A</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Inform VNIC client of dynamic changes to access
|
|
controls</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_15227" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>ACL_QUERY</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x1B</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Request information about access control limitations in
|
|
place for this VNIC.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_15227" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>ACL_QUERY_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x9B</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to ACL_QUERY command.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_15227" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_DEBUG_STATS</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x1C</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VNIC Client</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Request unarchitected statistics block used for debugging
|
|
firmware problems.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_18536" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>REQUEST_DEBUG_STATS_RSP</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0x9C</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Firmware</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Response to REQUEST_DEBUG_STATS command.</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<xref linkend="dbdoclet.50569384_18536" />
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_14812">
|
|
<title>VNIC Architected Return Values</title>
|
|
<?dbhtml table-width="75%" ?><?dbfo table-width="75%" ?>
|
|
<tgroup cols="3">
|
|
<colspec colname="c1" colwidth="30*" align="center" />
|
|
<colspec colname="c2" colwidth="20*" align="center" />
|
|
<colspec colname="c3" colwidth="50*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Return Code</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Value</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Success</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The requested operation completed successfully.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>PartialSuccess</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The requested operation completed partially successful. The
|
|
parameters were valid, but not all resources could be obtained to
|
|
completely satisfy the command. Check the specific function
|
|
definition for details.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Permission</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The request called for permissions not available.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>NoMemory</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The request failed due to insufficient memory.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Parameter</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>One or more parameters were in error in the request.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>UnknownCommand</para>
|
|
</entry>
|
|
<entry>
|
|
<para>5</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The specific VNIC command is unknown.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Aborted</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The command was aborted by some other action.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>InvalidState</para>
|
|
</entry>
|
|
<entry>
|
|
<para>7</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The requested command is invalid at this time.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>InvalidIOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>An I/O bus address passed as a parameter was
|
|
invalid.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>InvalidLength</para>
|
|
</entry>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>A length passed as a parameter was invalid.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>UnsupportedOption</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>A reserved value or option was used on an existing command
|
|
that system firmware does not support.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>11-255</para>
|
|
</entry>
|
|
<entry>
|
|
<para>These return codes are reserved.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_61724">
|
|
<title>Typical VNIC Protocol Flows</title>
|
|
<section>
|
|
<title>Boot Flow</title>
|
|
<para>This section gives an overview of the typical VNIC startup
|
|
sequence.</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>The operating system discovers a VNIC device in the device
|
|
tree.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>The operating system instantiates the VNIC client device driver,
|
|
allocates a buffer for the VNIC CRQ, which is then TCE-mapped using the
|
|
VNIC’s TCE table. Since the VNIC protocol is a command/response
|
|
protocol, the VNIC client should allocate a CRQ buffer big enough to
|
|
handle a response for every command it wishes to have outstanding
|
|
concurrently with firmware with an allowance for unsolicited asynchronous
|
|
error and link state change CRQ events.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client calls H_REG_CRQ specifying the unit address and IOBA
|
|
of the CRQ page(s), and waits for either H_Success or an INITIALIZATION
|
|
message as defined in
|
|
<xref linkend="dbdoclet.50569348_48491" />.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client sends either an INITIALIZATION_COMPLETE or an
|
|
INITIALIZATION message to firmware using H_SEND_CRQ, as defined in
|
|
<xref linkend="dbdoclet.50569348_48491" />.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Once the INITIALIZATION and INITIALIZATION_COMPLETE messages
|
|
have been exchanged, the VNIC client sends a VERSION_EXCHANGE using
|
|
H_SEND_CRQ, specifying the latest version of the VNIC protocol supported
|
|
by the VNIC client.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Firmware responds with a VERSION_EXCHANGE_RSP specifying the
|
|
version it supports. Both VNIC client and firmware must support the lower
|
|
of the two versions. Until and unless the VNIC client receives a
|
|
VERSION_EXCHANGE_RSP, no further VNIC commands may be sent.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client may now use QUERY_CAPABILITY commands to interrogate
|
|
what the firmware supports currently. Multiple QUERY_CAPABILITY commands
|
|
may be send in parallel, up to one for each capability being
|
|
interrogated.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Firmware will respond with QUERY_CAPABILITY_RSP messages for
|
|
each query sent.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Once the queries are returned, the VNIC client uses the
|
|
REQUEST_CAPABILITY commands to inform the firmware of the capabilities it
|
|
plans on using. Until the capability has been requested and a successful
|
|
response has been received, it will not function, and commands which use
|
|
the capabilities will fail.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Only the Capability-related commands are usable prior to
|
|
sending a Login command.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>The VNIC client determines how many Sub-CRQs to set up based on
|
|
the capabilities negotiated with the server and partition configuration,
|
|
and attempts to set those up by allocating memory, mapping them with
|
|
TCEs, and calling H_REG_SUB_CRQ iteratively for each Sub-CRQ.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Once the VNIC client has successfully gotten each Sub-CRQ it
|
|
needs registered (with some possibly failing due to unavailable
|
|
resources), it parcels them out to specific queues (Transmit Completion
|
|
and Receive Completion), and does a REQUEST_CAPABILITY for the
|
|
appropriate number of each from firmware.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Once the VNIC client has all SubCrqs registered, he sends a
|
|
LOGIN CRQ to the server, specifying each Sub-CRQ handle and purpose as
|
|
defined in the LOGIN command structure, and waits for a LOGIN_RSP which
|
|
includes the server’s Sub-CRQ handles and purposes.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Once the LOGIN_RSP has been returned successfully, the VNIC
|
|
client is free to utilize the Transmit Submission Sub-CRQs and Receive
|
|
Buffer Add Sub-CRQs, as well as any other VNIC command.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Once the VNIC client is ready to receive frames (for the
|
|
Logical Link State to transition to Link Up), it sends a
|
|
LOGICAL_LINK_STATE command to firmware. If the VNIC client is also in
|
|
control of the physical port, sending the LOGICAL_LINK_STATE command has
|
|
the side effect of initiating physical port link negotiation, as
|
|
appropriate.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>The firmware will send a LOGICAL_LINK_STATE_RSP once the link
|
|
state is up.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Adapter reboot</title>
|
|
<para>In the event that system firmware encounters an error, needs to
|
|
update the firmware on the adapter, or needs to remove the virtualized
|
|
adapter from the partition, the following flows will happen.</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Firmware will close its CRQ and Sub-CRQs.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client receives a TRANSPORT_EVENT specifying Partner
|
|
Partition Closed or receives an H_Closed return code on a H_SEND_CRQ or
|
|
H_SEND_SUB_CRQ hypervisor call.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client closes all Sub-CRQs and CRQ using H_FREE_SUB_CRQ and
|
|
H_FREE_CRQ. (Optionally, only H_FREE_CRQ could be used to close the CRQ
|
|
and all Sub-CRQs.)</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client cleans up all outstanding unacknowledged transmit
|
|
frames.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client cleans up all receive buffers that had been given to
|
|
the firmware.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client opens the CRQ, and attempts the boot
|
|
sequence.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Partition Mobility</title>
|
|
<para>In the event that an active partition is migrated to a new
|
|
platform, the following sequence takes place.</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>VNIC client receives a TRANSPORT_EVENT event specifying Partner
|
|
Partition Suspended (Defined in
|
|
<xref linkend="dbdoclet.50569348_93265" />).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client pauses submission of new transmit frames and receive
|
|
add buffers.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client closes all Sub-CRQs.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client completes all outstanding unacknowledged transmit
|
|
frames. This may involve queueing them for retransmission once the VNIC
|
|
is recovered, or completing them as dropped, letting higher layers of the
|
|
TCP/IP stack perform retransmission.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client calls H_ENABLE_CRQ until H_Success is
|
|
returned.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client attempts the boot sequence.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Dump</title>
|
|
<para>Typical dump collection flow:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>VNIC client decides on the need for a VNIC dump.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client sends a REQUEST_DUMP_SIZE command (see
|
|
<xref linkend="dbdoclet.50569384_98572" />) to system firmware.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Firmware responds with a REQUEST_DUMP_SIZE_RSP with an estimate
|
|
on the amount of storage required to store the dump into VNIC client
|
|
memory.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client allocates a buffer big enough to hold the dump, and
|
|
maps it with TCEs.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client sends a REQUEST_DUMP command (see
|
|
<xref linkend="dbdoclet.50569384_42328" />) to system firmware containing
|
|
the IOBAs referring to the dump buffer.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>System firmware uses the supplied dump buffer to collect the
|
|
memory that’s previously been registered by firmware as important
|
|
for dumps.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>System firmware optionally collects physical adapter debug data
|
|
into the dump buffer as well.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>System firmware sends a REQUEST_DUMP_RSP (see
|
|
<xref linkend="dbdoclet.50569384_99465" />) to the VNIC client,
|
|
indicating the dump is complete.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Frame Transmission</title>
|
|
<para>Transmission of Ethernet frames using the VNIC protocol is
|
|
accomplished using two or more Subordinate CRQs. The VNIC client
|
|
allocates one or more Transmit Completion Sub-CRQs and system firmware
|
|
allocates one or more Transmit Submission CRQs. The handles for each are
|
|
exchanged during the LOGIN processing.</para>
|
|
<para>The following numbered sequence details the simplified transmission
|
|
of an Ethernet frame. As with any CRQ or Subordinate CRQ based protocol,
|
|
the listed virtual interrupts may not occur for every CRQ or Sub-CRQ that
|
|
is sent using H_SEND_CRQ, H_SEND_SUB_CRQ, or H_SEND_SUB_CRQ_INDIRECT. It
|
|
is the firm intent of this protocol to allow the VNIC client and system
|
|
firmware to batch frame transmission submission and transmit complete
|
|
indications to minimize the number of virtual interrupts and to make the
|
|
transmission of Ethernet frames as efficient as possible. Multiple
|
|
Sub-CRQs may be presented to either the VNIC or system firmware with a
|
|
single virtual interrupt.</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Operating system chooses a VNIC adapter to use for frame
|
|
transmission.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client device driver either copies the frame into a private
|
|
buffer that’s already been mapped via a TCE or maps the frame with
|
|
a TCE.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client device driver constructs a Transmit Descriptor (or
|
|
multiples) describing the TCE mapped buffer (see
|
|
<xref linkend="dbdoclet.50569384_46136" />).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client device driver uses H_SEND_SUB_CRQ to pass the
|
|
Transmit Descriptor to system firmware’s Transmit Submission
|
|
Sub-CRQ.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>System firmware receives the Sub-CRQ event, and transforms it
|
|
into the appropriate format for the specific Ethernet adapter being
|
|
virtualized, and uses its embedded device driver to send the frame out
|
|
the wire. The system firmware uses RDMA to DMA the frame directly from
|
|
the VNIC client.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>The physical Ethernet device driver interrupts system firmware
|
|
(or system firmware polls for completion at appropriate times) indicating
|
|
the frame has been successfully transmitted. System firmware constructs a
|
|
Transmit Completion Sub-CRQ event (see
|
|
<xref linkend="dbdoclet.50569384_32652" />), and places that Sub-CRQ onto
|
|
the Transmit Completion Sub-CRQ.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>VNIC client removes the TCE mapping for the frame, and makes it
|
|
available to its network stack.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Frame Reception</title>
|
|
<para>Reception of Ethernet frames is accomplished using two or more
|
|
Sub-CRQs, similar to frame transmission. System firmware creates one or
|
|
more Receive Buffer Add Sub-CRQs and the VNIC client creates one or more
|
|
Receive Completion Sub-CRQs.</para>
|
|
<para>The following numbered sequence details the simplified reception of
|
|
an Ethernet frame. As with any CRQ or Subordinate CRQ based protocol, the
|
|
listed virtual interrupts may not occur for every CRQ or Sub-CRQ that is
|
|
sent using H_SEND_CRQ, H_SEND_SUB_CRQ, or H_SEND_SUB_CRQ_INDIRECT. It is
|
|
the firm intent of this protocol to allow the VNIC client and system
|
|
firmware to batch frame reception and buffer adding to minimize the
|
|
number of virtual interrupts and to make the reception of Ethernet frames
|
|
as efficient as possible. Multiple Sub-CRQs may be presented to either
|
|
the VNIC or system firmware with a single virtual interrupt.</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>When the VNIC client is started, the VNIC allocates several
|
|
memory buffers to be used to the reception of Ethernet frames. The VNIC
|
|
client maps those buffers with TCEs using its TCE mapping
|
|
services.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>For each receive buffer, the VNIC client creates Add Receive
|
|
Buffer Descriptor events (see
|
|
<xref linkend="dbdoclet.50569384_19523" />), and gives them to system
|
|
firmware via the Receive Buffer Add Sub-CRQ using H_SEND_SUB_CRQ or
|
|
H_SEND_SUB_CRQ_INDIRECT. Once this is done, the VNIC client should not
|
|
use or otherwise modify the receive buffer until it’s been given
|
|
back to the VNIC client using the Receive Sub-CRQ or the Sub-CRQs and CRQ
|
|
have been freed using H_FREE_SUB_CRQ and H_FREE_CRQ.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>As system firmware receives the Receive Buffer Add Sub-CRQ
|
|
events, it uses its physical adapter device driver to add the receive
|
|
buffer to the physical adapter’s receive queues.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>A frame arrives for the physical adapter off of the physical
|
|
wire, and the adapter dmas the frame directly to the VNIC client’s
|
|
memory for one of the receive buffers.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>System firmware receives an interrupt from the physical adapter
|
|
saying a frame has arrived, and uses the information it saves to generate
|
|
a Receive Completion event Sub-CRQ (see
|
|
<xref linkend="dbdoclet.50569384_54724" />), and places it on the
|
|
appropriate Receive Completion Sub-CRQ.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>The VNIC client receives a virtual interrupt for its Receive
|
|
Completion Sub-CRQ, and passes the frame up its network stack.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<title>VNIC Commands</title>
|
|
<para>All VNIC commands are sent using H_SEND_CRQ.</para>
|
|
<section xml:id="dbdoclet.50569384_34836">
|
|
<title>Version Exchange</title>
|
|
<para>The VERSION_EXCHANGE command as defined in
|
|
<xref linkend="dbdoclet.50569384_25438" /> allow the VNIC protocol to be
|
|
easily updated in the future. Each side is required to support the
|
|
highest common version of the VNIC protocol specification, as exchanged
|
|
right after the low level CRQ registration flows.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_25438">
|
|
<title>VERSION_EXCHANGE and VERSION_EXCHANGE_RSP
|
|
Command</title>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="30*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="50*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte<?linebreak?>Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field should be either VERSION_EXCHANGE or
|
|
VERSION_EXCHANGE_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum version that VNIC client supports on a
|
|
VERSION_EXCHANGE and the maximum version that system firmware
|
|
supports on a VERSION_EXCHANGE_RSP. Each side must support the
|
|
highest common version between the two versions. A value from
|
|
<xref linkend="dbdoclet.50569384_19008" /> will be contained in
|
|
this field.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_19008">
|
|
<title>VNIC Protocol Versions</title>
|
|
<?dbhtml table-width="50%" ?><?dbfo table-width="50%" ?>
|
|
<tgroup cols="2">
|
|
<colspec colname="c1" colwidth="50*" align="center" />
|
|
<colspec colname="c2" colwidth="50*" align="center" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Value</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Initial VNIC protocol version</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>2-65535</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_72910">
|
|
<title>VNIC Capabilities</title>
|
|
<para>The VNIC capabilities command as defined in
|
|
<xref linkend="dbdoclet.50569384_96879" /> is used to create an abstracted
|
|
architecture for discovering and utilizing different NIC advanced
|
|
functions on adapters, in an adapter-independent manner. As new
|
|
capabilities are introduced in adapters, more capability values will be
|
|
added.</para>
|
|
<para>To discover which capabilities a VNIC currently supports, multiple
|
|
QUERY_CAPABILITY commands should be sent from the VNIC client for each
|
|
capability of interest. System firmware will return the current
|
|
capability setting, or a bad return code if the capability isn’t
|
|
supported. System firmware will return UnsupportedOption for any
|
|
capability it doesn’t understand.</para>
|
|
<para>If the VNIC client wishes to use one of the supported capabilities,
|
|
it must be enabled via the correct REQUEST_CAPABILITY command. If a
|
|
capability has a variable number of settings (settable via the Number
|
|
field), and system firmware doesn’t support the value, a
|
|
PartialSuccess return code will be returned with the capped value in the
|
|
response.</para>
|
|
<para>If the VNIC client wishes to use REQUEST_CAPABILITY to determine if
|
|
any specific capabilities are valid without performing QUERY_CAPABILITY
|
|
commands, that’s acceptable, but there may be side effects as a
|
|
result.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_96879">
|
|
<title>CAPABILITIES Commands</title>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field should be QUERY_CAPABILITIES,
|
|
REQUEST_CAPABILITIES, or their associated responses.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Capability</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This value should be one of the values from
|
|
<xref linkend="dbdoclet.50569384_72718" />.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is used for both REQUESTs and QUERYs. For a
|
|
REQUEST, it’s the value that the VNIC client wishes to
|
|
use. On any RSP, it’s the new (or unchanged) current
|
|
value of the capability.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_72718">
|
|
<title>VNIC Capabilities</title>
|
|
<tgroup cols="3">
|
|
<colspec colname="c1" colwidth="25*" align="center" />
|
|
<colspec colname="c2" colwidth="35*" />
|
|
<colspec colname="c3" colwidth="40*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Value</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Behavior</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Minimum Number of firmware-supported Transmit
|
|
Completion/Submission Queues</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query-only<?linebreak?>- Integer value returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Minimum Number of firmware-supported Receive Completion
|
|
Queues</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query-only<?linebreak?>- Integer value returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Minimum Number of firmware-supported Receive Buffer Add
|
|
Queues per Receive Completion Queue</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query-only<?linebreak?>- Integer value returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum Number of firmware-supported Transmit
|
|
Completion/Submission Queues</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query-only<?linebreak?>- Integer value returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>5</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum Number of firmware-supported Receive Completion
|
|
Queues</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query-only<?linebreak?>- Integer value returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum Number of firmware-supported Receive Buffer Add
|
|
Queues per Receive Completion Queue</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query-only<?linebreak?>- Integer value returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>7</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Requested Number of Transmit Completion/Submission
|
|
Queues</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Settable<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Requested Number of Receive Completion Queues</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Settable<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Requested Number of Receive Buffer Add Queues per Receive
|
|
Completion Queue</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Settable<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Minimum Number of Transmit Entries Per Sub-CRQ</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>11</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Minimum Number of Receive Buffer Add Entries per
|
|
Sub-CRQ</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum Number of Transmit Entries Per Sub-CRQ</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>13</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum Number of Receive Buffer Add Entries per
|
|
Sub-CRQ</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>14</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Requested Number of Transmit Entries Per Sub-CRQ</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Settable<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>15</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Requested Number of Receive Buffer Add Entries per
|
|
Sub-CRQ</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Settable<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>TCP/IP offload supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Boolean value returned in Number. If TRUE, TCP/IP
|
|
offload commands defined in
|
|
<xref linkend="dbdoclet.50569384_86912" /> are supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>17</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Promiscuous mode requested</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Settable<?linebreak?>- Boolean value returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>18</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Promiscuous mode supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Boolean value returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>19</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Minimum MTU size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum MTU size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>21</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Requested MTU size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Settable<?linebreak?>
|
|
- Positive integer value set and returned in
|
|
Number<?linebreak?>
|
|
- This setting can impact the minimum number of queues or
|
|
receive buffer sizes supported, and should either be set early
|
|
or other capabilities will need to be reevaluated.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>22</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum Number of Unique Multicast MAC address
|
|
filters</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>- Positive integer value set and returned in Number</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>23</para>
|
|
</entry>
|
|
<entry>
|
|
<para>VLAN Header insertion supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>
|
|
- Boolean value returned in Number<?linebreak?>
|
|
- This is controlled on a packet by packet basis in the
|
|
transmit descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para> </para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>25</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Maximum Transmit Scatter Gather entries</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>
|
|
- Positive integer value reflecting the maximum number of
|
|
IOBAs that can be used to describe a single frame using
|
|
Transmit Descriptors.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>26</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Receive Scatter/Gather Mode supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Query only<?linebreak?>
|
|
- Boolean value set and returned in Number.<?linebreak?>
|
|
- If supported, this can enable chaining of receive
|
|
buffers together to minimize the amount of memory that needs to
|
|
be added in the form of Receive Buffers (Particularly if Large
|
|
Receive Offload is enabled).</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>27</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Receive Scatter/Gather Mode Requested</para>
|
|
</entry>
|
|
<entry>
|
|
<para>- Settable<?linebreak?>
|
|
- Boolean value set and returned in Number.<?linebreak?>
|
|
- This setting can impact the number of queues or receive
|
|
buffer sizes supported, and should be set before configuring
|
|
those values.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>28-65535</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para> </para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_24033">
|
|
<title>Login Support</title>
|
|
<para>The use of the LOGIN and LOGIN_RSP commands is defined in
|
|
<xref linkend="dbdoclet.50569384_61724" />. The format of the LOGIN
|
|
command is defined in
|
|
<xref linkend="dbdoclet.50569384_74952" />, and the LOGIN_RSP command is
|
|
defined in
|
|
<xref linkend="dbdoclet.50569384_17449" />.</para>
|
|
<para>There must be exactly one Transmit Submission Sub-CRQ for each
|
|
Transmit Completion Sub-CRQ, and vice versa. Each is implicitly tied to
|
|
the other by virtue of the order each appears in the array of handles in
|
|
the LOGIN Buffer and LOGIN Response buffer. (i.e. The first entry in each
|
|
are associated, the second entry in each are associated, etc.)</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_74952">
|
|
<title>LOGIN Request</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to LOGIN.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer containing the LOGIN Buffer as defined in
|
|
<xref linkend="dbdoclet.50569384_81443" />.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is the length of the TCE-mapped LOGIN buffer.
|
|
This value should match that as seen in the LOGIN
|
|
Buffer.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_81443">
|
|
<title>LOGIN Buffer</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Total Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is the total length of the LOGIN
|
|
Buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the version of LOGIN Buffer layout.
|
|
The initial version should be set to 1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of Transmit Completion Sub-CRQs</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the number of Transmit Completion
|
|
Sub-CRQs as allocated by the VNIC client.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to Transmit Completion Sub-CRQ handles</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Offset from the beginning of the LOGIN buffer to the
|
|
start of an array of 8 byte elements containing the array of
|
|
Transmit Completion Sub-CRQ handles.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of Receive Completion Sub-CRQs</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the number of Receive Completion
|
|
Sub-CRQs as allocated by the VNIC client.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to Receive Completion Sub-CRQ handles</para>
|
|
</entry>
|
|
<entry>
|
|
<para>20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Offset from the beginning of the LOGIN Buffer to the
|
|
start of an array of 8 byte elements containing the array of
|
|
Receive Completion Sub-CRQ handles.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Login Response buffer IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an I/O buffer address referencing a
|
|
TCE-mapped buffer to be used for the system firmware to place
|
|
its LOGIN Response buffer containing its variable length array
|
|
of Sub-CRQ handles. This can point to the same storage as the
|
|
LOGIN Buffer, as necessary.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Login Response buffer length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>28</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the Login Response
|
|
buffer described in the Login Response buffer IOBA. The VNIC
|
|
client needs to ensure that system firmware will have enough
|
|
space to place each Sub-CRQ handle as requested prior to LOGIN
|
|
using REQUEST_CAPABILITY commands.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Transmit Completion Sub-CRQ handle array</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a variable sized array containing the Sub-CRQ
|
|
handles obtained from H_REGISTER_SUB_CRQ for the Transmit
|
|
Completion Sub-CRQ handles.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Receive Completion Sub-CRQ handle array</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a variable sized array containing the Sub-CRQ
|
|
handles obtained from H_REGISTER_SUB_CRQ for the Receive
|
|
Completion Sub-CRQ handles.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_97019">
|
|
<title>LOGIN Response Buffer</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Total Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is the total length of the Login Response
|
|
Buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the version of LOGIN Response Buffer
|
|
layout. The initial version should be set to 1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of Transmit Submission Sub-CRQs</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the number of Transmit Submission
|
|
Sub-CRQs as requested by the VNIC client and allocated by
|
|
firmware.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to Transmit Submission Sub-CRQ handles</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Offset from the beginning of the LOGIN Response Buffer to
|
|
the start of an array of 8 byte elements containing the array
|
|
of Transmit Submission Sub-CRQ handles.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of Receive Buffer Add Sub-CRQs</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the total number of Receive Buffer
|
|
Add Sub-CRQs as requested by the VNIC client and allocated by
|
|
the firmware. The first n correspond to the first Receive
|
|
Completion Sub-CRQ, the next n to the second, etc., where n is
|
|
the Requested number of Receive Buffer Add Sub-CRQs per Receive
|
|
Completion Queue requested by the VNIC client.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to Receive Buffer Add Sub-CRQ handles</para>
|
|
</entry>
|
|
<entry>
|
|
<para>20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Offset from the beginning of the LOGIN Response Buffer to
|
|
the start of an array of 8 byte elements containing the array
|
|
of Receive Buffer Add Sub-CRQ handles.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to Receive Buffer Add Buffer Size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Offset from the beginning of the LOGIN Response Buffer to
|
|
the start of an array of 8 byte sizes. There is one size for
|
|
each Receive Buffer Add Sub-CRQ, and each size represents the
|
|
receive buffer size possible for that specific Receive Buffer
|
|
Add Sub-CRQ.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of Supported Transmit Descriptors</para>
|
|
</entry>
|
|
<entry>
|
|
<para>28</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the number of supported Transmit
|
|
Descriptors, as detailed in
|
|
<xref linkend="dbdoclet.50569384_88683" />.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to Supported Transmit Descriptors array</para>
|
|
</entry>
|
|
<entry>
|
|
<para>32</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Offset from the beginning of the LOGIN Response Buffer to
|
|
the start of an array of 1 byte values. There is one value for
|
|
each supported Transmit Descriptor format, sorted so the
|
|
formats with best performance will be first in the
|
|
array.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Transmit Submission Sub-CRQ handle array</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a variable sized array containing the Sub-CRQ
|
|
handles obtained from H_REGISTER_SUB_CRQ for the Transmit
|
|
Submission Sub-CRQ handles.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Receive Buffer Add Sub-CRQ handle array</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a variable sized array containing the Sub-CRQ
|
|
handles obtained from H_REGISTER_SUB_CRQ for the Receive Buffer
|
|
Add Sub-CRQ handles.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Receive Buffer Add Buffer Size array</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a variable sized array containing the Receive
|
|
Buffer Sizes must use for the respective Receive Buffer Add
|
|
Sub-CRQs.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Supported Transmit Descriptors array</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a variable sized array containing the
|
|
performance-order sorted array of one byte supported Transmit
|
|
Descriptor formats.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_17449">
|
|
<title>LOGIN_RSP Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to LOGIN_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_19462">
|
|
<title>Physical Port Parameters</title>
|
|
<para>A VNIC client may always use the QUERY_PHYS_PARM command to
|
|
retrieve information about the current physical port state such as
|
|
current link speed and state.</para>
|
|
<para>A VNIC client may always use the QUERY_PHYS_CAPABILITIES command to
|
|
retrieve information about the current capabilities of the physical
|
|
adapter associated with the VNIC, including allowed speed, duplex, and
|
|
ability to modify those values.</para>
|
|
<para>If the VNIC client wishes to determine all bits that are supported
|
|
by firmware, it may choose to send a QUERY_PHYS_CAPABILITIES command with
|
|
no bits turned on. Firmware will respond with all possible bits it
|
|
supports. If the VNIC client wishes to determine if a specific bit
|
|
combination is supported by firmware, it may turn on those specific bit
|
|
combinations. In that case, firmware will validate the combination, and
|
|
validate the specific combination.</para>
|
|
<para>If the system administrator has configured the VNIC to have
|
|
physical port configuration authority, the VNIC client may also use the
|
|
SET_PHYS_PARMS command to change those values.</para>
|
|
<para>The SET_PHYS_PARMS, QUERY_PHYS_PARMS, and QUERY_PHYS_CAPABILITIES
|
|
commands all use a common command format defined in
|
|
<xref linkend="dbdoclet.50569384_48153" />.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_48153">
|
|
<title>Physical Port Parameters Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be either SET_PHYS_PARMS,
|
|
QUERY_PHYS_PARMS, QUERY_PHYS_CAPABILITIES, or the respective
|
|
response values.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The following bits are used to either request the
|
|
specific capability on a SET_PHYS_PARMS, indicate the
|
|
capability to use that capability on a QUERY_PHYS_CAPABILITIES,
|
|
or return the current value of the capability on a
|
|
QUERY_PHYS_PARMS command.</para>
|
|
<para>Bit 0: External loopback mode</para>
|
|
<para>Bit 1: Internal loopback mode</para>
|
|
<para>Bit 2: Promiscuous mode</para>
|
|
<para>Bit 3: Physical Link Active (VNIC can communicate onto
|
|
the physical media)</para>
|
|
<para>Bit 4: Autonegotiate Duplex</para>
|
|
<para>Bit 5: Full duplex mode</para>
|
|
<para>Bit 6: Half duplex mode</para>
|
|
<para>Bit 7: If set, the VNIC has the ability to change
|
|
physical port parameters.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0: Adapter Logical Link Active (multiple VNICs on the
|
|
same adapter can communicate)</para>
|
|
<para>Bit 1-7: Reserved</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Speed</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>The following bits are used to either request the
|
|
specific speed on a SET_PHYS_PARMS, indicate the capability to
|
|
use that speed on a QUERY_PHYS_CAPABILITIES, or return the
|
|
current speed on a QUERY_PHYS_PARMS command.</para>
|
|
<para>Bit 0: Autonegotiate speed</para>
|
|
<para>Bit 1: 10 megabit speed</para>
|
|
<para>Bit 2: 100 megabit speed</para>
|
|
<para>Bit 3: 1 gigabit speed</para>
|
|
<para>Bit 4: 10 gigabit speed</para>
|
|
<para>Bit 5-31: These bits are reserved, and should be set to
|
|
0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>MTU</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is used to request a MTU for this VNIC client,
|
|
and to return the current MTU setting. If this value exceeds
|
|
the allowed value in the case where there are multiple VNICs
|
|
associated with the same physical adapter, this MTU will be
|
|
capped to an allowable value, and a PartialSuccess return code
|
|
will be returned on the SET_PHYS_PARMS command.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>On a response, this is a return code for the operation as
|
|
defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_63487">
|
|
<title>Logical Link State</title>
|
|
<para>When the VNIC does not have authority to change the physical port
|
|
parameters, the LOGICAL_LINK_STATE command and response provide a method
|
|
for the VNIC to inform system firmware when it’s ready to receive
|
|
packets. The format of the LOGICAL_LINK_STATE and LOGICAL_LINK_STATE_RSP
|
|
commands is defined in
|
|
<xref linkend="dbdoclet.50569384_73732" />.</para>
|
|
<para>The current VNIC logical link state will always be returned in the
|
|
Link State field on a LOGICAL_LINK_STATE_RSP.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_73732">
|
|
<title>LOGICAL_LINK_STATE and LOGICAL_LINK_STATE_RSP
|
|
commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be either LOGICAL_LINK_STATE or
|
|
LOGICAL_LINK_STATE_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Link State</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is used to request a logical link state change
|
|
by the VNIC client without a corresponding change to the
|
|
physical link state. The intended use for this is when a VNIC
|
|
client is associated with a NIC VF that doesn’t have
|
|
control over the physical port to control when the VNIC client
|
|
receives incoming frames.</para>
|
|
<para>If this field is a 0, the link should be down, if the
|
|
field is a 1, the link should be up.</para>
|
|
<para>if this field is 0xFF, no logical link state change will
|
|
be done, and the current logical link state will be returned in
|
|
the response.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_86912">
|
|
<title>TCP, UDP, and IP Offload Support</title>
|
|
<para>The QUERY_IP_OFFLOAD command as defined in
|
|
<xref linkend="dbdoclet.50569384_90384" /> allows the VNIC client to
|
|
determine what facilities exist in the VNIC system firmware, and its
|
|
limitations, if any.</para>
|
|
<para>Based on the capabilities and limitations, the CONTROL_IP_OFFLOAD
|
|
command as defined in
|
|
<xref linkend="dbdoclet.50569384_70694" /> allows the VNIC client to
|
|
enable appropriate offload capabilities. QUERY_IP_OFFLOAD and
|
|
CONTROL_IP_OFFLOAD must be done prior to successful LOGIN
|
|
exchange.</para>
|
|
<para>All offload parameters are off by default.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_90384">
|
|
<title>QUERY_IP_OFFLOAD and QUERY_IP_OFFLOAD_RSP
|
|
Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be either QUERY_IP_OFFLOAD or
|
|
QUERY_IP_OFFLOAD_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the QUERY_IP_OFFLOAD
|
|
buffer</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer used by system firmware to return IP offload
|
|
information. On reception of a successful QUERY_IP_OFFLOAD_RSP,
|
|
the buffer will be filled in with the structure as defined in
|
|
<xref linkend="dbdoclet.50569384_75230" />.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_70694">
|
|
<title>CONTROL_IP_OFFLOAD and CONTROL_IP_OFFLOAD_RSP
|
|
Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be CONTROL_IP_OFFLOAD or
|
|
CONTROL_IP_OFFLOAD_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer containing the parameters to enable or
|
|
disable TCP, UDP, and IP offload. The format of this buffer is
|
|
defined in
|
|
<xref linkend="dbdoclet.50569384_28116" />.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the CONTROL_IP_OFFLOAD
|
|
buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_75230">
|
|
<title>QUERY_IP_OFFLOAD Buffer</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="30*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="50*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Total Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is the total length of the QUERY_IP_OFFLOAD
|
|
Buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the version of QUERY_IP_OFFLOAD
|
|
Buffer layout. The initial version should be 1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IPv4 Checksum offload supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IPv6 Checksum offload supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>TCP over IPv4 checksum offload supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>TCP over IPv6 checksum offload supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>11</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>UDP over IPv4 checksum offload supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>UDP over IPv6 checksum offload supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>13</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Large send offload over IPv4 supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>14</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Large send offload over IPv6 supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>15</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Large receive offload over IPv4 supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Large receive offload over IPv4 supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>17</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if supported.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>18</para>
|
|
</entry>
|
|
<entry>
|
|
<para>14</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and is set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Maximum IPv4 header size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>32</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the maximum size of the IPv4 header
|
|
for offload operations, or 0xFFFF if no limit.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Maximum IPv6 header size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>34</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the maximum size of the IPv6 header
|
|
for offload operations, or 0xFFFF if no limit.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Maximum TCP header size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>36</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the maximum size of the TCP header
|
|
for offload operations, or 0xFFFF if no limit.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Maximum UDP header size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>38</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the maximum size of the UDP header
|
|
for offload operations, or 0xFFFF if no limit.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Maximum Large send offload size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>40</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the maximum size of a pseudo-frame
|
|
for large send offload operations, or 0xFFFFFFFF if no
|
|
limit.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Maximum Large receive offload size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>44</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the maximum size of a pseudo-frame
|
|
for large receive offload operations, or 0xFFFFFFFF if no
|
|
limit.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>48</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and is set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IPv6 Extension Header supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>64</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a 0 if no extension headers are
|
|
supported.</para>
|
|
<para>This field contains a 1 if extension headers are
|
|
supported with limits</para>
|
|
<para>This field contains a 0xFF if all IPv6 extension headers
|
|
are supported</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>TCP Pseudosum required</para>
|
|
</entry>
|
|
<entry>
|
|
<para>65</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 0 if no pseudosum is required in the
|
|
frame.</para>
|
|
<para>This field is 1 if a standard pseudosum is required to be
|
|
put in the frame.</para>
|
|
<para>All other values are reserved.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>66</para>
|
|
</entry>
|
|
<entry>
|
|
<para>30</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and is set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of IPv6 extension headers supported</para>
|
|
</entry>
|
|
<entry>
|
|
<para>96</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field must be non zero if the IPv6 Extension Header
|
|
supported field is 1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to List of supported IPv6 extension headers</para>
|
|
</entry>
|
|
<entry>
|
|
<para>98</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an offset from the start of the
|
|
QUERY_IP_OFFLOAD buffer to the array of supported extension
|
|
header values.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>102</para>
|
|
</entry>
|
|
<entry>
|
|
<para>154</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Array of IPv6 extension header types</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is an array of one byte values that are the
|
|
extension header types supported by IPv6 offload.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_28116">
|
|
<title>CONTROL_IP_OFFLOAD Buffer</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="30*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="50*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Total Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is the total length of the CONTROL_IP_OFFLOAD
|
|
Buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the version of CONTROL_IP_OFFLOAD
|
|
Buffer layout. The initial version should be set to 1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable IPv4 Checksum offload</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable IPv6 Checksum offload</para>
|
|
</entry>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable TCP over IPv4 checksum offload</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable TCP over IPv6 checksum offload</para>
|
|
</entry>
|
|
<entry>
|
|
<para>11</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable UDP over IPv4 checksum offload</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable UDP over IPv6 checksum offload</para>
|
|
</entry>
|
|
<entry>
|
|
<para>13</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable Large send offload over IPv4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>14</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable Large send offload over IPv6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>15</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Enable bad packet reception</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 if desired</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>17</para>
|
|
</entry>
|
|
<entry>
|
|
<para>111</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_70585">
|
|
<title>Dump Support</title>
|
|
<para>The dumps collected via the VNIC interface is a smart dump that
|
|
depends upon a working device driver. If the portion of system firmware
|
|
servicing the physical adapter has run into catastrophic problems, an
|
|
entire memory image of the associated firmware will be collected
|
|
automatically, and collected in a similar fashion to platform
|
|
dumps.</para>
|
|
<para>If the VNIC client detects that the VNIC interface is not providing
|
|
the services in the manner it expects, it may utilize the dump support to
|
|
collect focused debugging data collected and stored in VNIC client
|
|
storage that’s been TCE-mapped.</para>
|
|
<para>The format of the REQUEST_DUMP command is defined in
|
|
<xref linkend="dbdoclet.50569384_42328" />, and the format of the
|
|
REQUEST_DUMP_RSP command is defined in
|
|
<xref linkend="dbdoclet.50569384_99465" />.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_98572">
|
|
<title>REQUEST_DUMP_SIZE and REQUEST_DUMP_SIZE_RSP
|
|
Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be either REQUEST_DUMP_SIZE or
|
|
REQUEST_DUMP_SIZE_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is set to the estimated length of the VNIC
|
|
dump in the REQUEST_DUMP_RSP if the return code was
|
|
Success.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_42328">
|
|
<title>REQUEST_DUMP Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_DUMP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer used by system firmware to place the VNIC
|
|
dump.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the VNIC dump
|
|
buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_99465">
|
|
<title>REQUEST_DUMP_RSP Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_DUMP_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Dumped Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the amount of data placed into the
|
|
dump buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_69706">
|
|
<title>Reliability, Availability, and Service (RAS) Support</title>
|
|
<para>The VNIC RAS support allows the tracing of information within
|
|
system firmware, and control of consistency checking done by firmware.
|
|
Individual components of firmware will be exposed to the VNIC Client, and
|
|
each component can independently have their tracing and error checking
|
|
levels increased and decreased. Each individual component’s trace
|
|
information can be collected independently from others.</para>
|
|
<para>Trace entries will be returned to the VNIC client in timebase
|
|
order.</para>
|
|
<para>The upper 16 bits of the trace ID for the Firmware Trace Data
|
|
Format are an AIX RAS tracehook ID, and the lower 16 bits are an AIX RAS
|
|
subhookid.</para>
|
|
<para>Prior to a successful LOGIN request, all components related to the
|
|
VNIC may not be available in the list of components. To get a complete
|
|
list of all possible components, the RAS commands should be delayed until
|
|
after a successful LOGIN unless a pre-LOGIN problem is being
|
|
diagnosed.</para>
|
|
<para>The CONTROL_RAS command can be used to resize the individual
|
|
components’ trace buffers, but due to the limited memory available
|
|
in the system firmware, increasing the sizes of one trace buffer may
|
|
require decreasing the size of a different component’s trace
|
|
buffer.</para>
|
|
<para>The REQUEST_RAS_COMP_NUM and REQUEST_RAS_COMP_NUM_RSP commands are
|
|
defined in
|
|
<xref linkend="dbdoclet.50569384_60833" />, and the REQUEST_RAS_COMPS and
|
|
REQUEST_RAS_COMPS_RSP command format is defined in
|
|
<xref linkend="dbdoclet.50569384_31394" />. The COLLECT_FW_TRACE and
|
|
COLLECT_FW_TRACE_RSP commands are defined in
|
|
<xref linkend="dbdoclet.50569384_83168" />.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_60833">
|
|
<title>REQUEST_RAS_COMP_NUM and REQUEST_RAS_COMP_NUM_RSP
|
|
Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_RAS_COMP_NUM or
|
|
REQUEST_RAS_COMP_NUM_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of Components</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the number of individual firmware
|
|
components whose RAS characteristics can be independently
|
|
modified.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>On a response, this field will contain a return code for
|
|
the request as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />. This field is
|
|
reserved for a request.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para>.</para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_31394">
|
|
<title>REQUEST_RAS_COMPS and REQUEST_RAS_COMPS_RSP
|
|
Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_RAS_COMPS or
|
|
REQUEST_RAS_COMPS_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an I/O bus address of a TCE-mapped
|
|
buffer containing an array of Firmware Component structures as
|
|
defined in
|
|
<xref linkend="dbdoclet.50569384_79000" />. The VNIC client
|
|
should ensure the buffer is large enough to contain the number
|
|
of components as returned in a REQUEST_RAS_COMP_NUM_RSP
|
|
command.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is the length of the buffer referred to by the
|
|
IOBA field. It should be some multiple of the size of the
|
|
Firmware Component format.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_89550">
|
|
<title>CONTROL_RAS and CONTROL_RAS_RSP Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be CONTROL_RAS or CONTROL_RAS_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a Correlator for a Firmware Component
|
|
as defined in
|
|
<xref linkend="dbdoclet.50569384_79000" /> that this command
|
|
should act on.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Level</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This value should be a value between 0 and 9, where a
|
|
larger number indicates a higher detail of tracing or error
|
|
checking.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Operation</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field controls what action the CONTROL_RAS command
|
|
performs.</para>
|
|
<para>If this value is a 1, use the Level field to modify the
|
|
current trace level of the specified component.</para>
|
|
<para>If this value is a 2, use the Level field to modify the
|
|
current error checking level of the specified component.</para>
|
|
<para>If this value is a 3, suspend the tracing for the
|
|
specified component that was previously on.</para>
|
|
<para>If this value is a 4, resume the tracing for the
|
|
specified component that was previously suspended.</para>
|
|
<para>If this value is a 5, turn tracing for the specified
|
|
component on.</para>
|
|
<para>If this value is a 6, turn tracing for the specified
|
|
component off.</para>
|
|
<para>If this value is a 7, change the size of the specified
|
|
trace buffer for the specified component.</para>
|
|
<para>All other values are reserved.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace Buffer Size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>5</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If Operation is a 7, this field contains the requested
|
|
size of the specified trace buffer. On a response, will be
|
|
filled in with the current size of the trace buffer.</para>
|
|
<para>For all other Operation values, this field is
|
|
reserved.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_83168">
|
|
<title>COLLECT_FW_TRACE and COLLECT_FW_TRACE_RSP
|
|
Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be COLLECT_FW_TRACE or
|
|
COLLECT_FW_TRACE_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a Correlator for a Firmware Component
|
|
as defined in
|
|
<xref linkend="dbdoclet.50569384_79000" /> that this command
|
|
should act on.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the I/O bus address of a TCE-mapped
|
|
buffer of the indicated size that will be used by firmware to
|
|
return the trace.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Buffer Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the buffer in bytes
|
|
used to collect the trace information. On a COLLECT_FW_RSP,
|
|
this value will indicate how much trace data is actually placed
|
|
in the buffer. The trace data is an array of entries with the
|
|
format as defined in
|
|
<xref linkend="dbdoclet.50569384_10583" />.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_10583">
|
|
<title>Firmware Trace Data Entry Format</title>
|
|
<?dbhtml table-width="40%" ?><?dbfo table-width="40%" ?>
|
|
<tgroup cols="3">
|
|
<colspec colname="c1" colwidth="60*" align="center" />
|
|
<colspec colname="c2" colwidth="20*" align="center" />
|
|
<colspec colname="c3" colwidth="20*" align="center" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Trace ID</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number Valid Trace Data</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>5</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>PMC Registers</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Timebase</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace Data 1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace Data 2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>32</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace Data 3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>40</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace Data 4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>48</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace Data 5</para>
|
|
</entry>
|
|
<entry>
|
|
<para>56</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_79000">
|
|
<title>Firmware Component Format</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Component Name</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>48</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an ASCII string containing a readable
|
|
name of the component.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace Buffer Size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>48</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the size of the trace buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>52</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a value to be used on a
|
|
COLLECT_FW_TRACE or CONTROL_RAS command to identify which
|
|
component to operate on.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace Level</para>
|
|
</entry>
|
|
<entry>
|
|
<para>53</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field shows the current trace level, as defined in
|
|
<xref linkend="dbdoclet.50569384_89550" />.</para>
|
|
<para>A value of 0xFF indicates this component does not support
|
|
tracing.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Parent Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>54</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the correlator of the parent
|
|
component. If this value is 0xFF, there is no parent.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Error Checking</para>
|
|
</entry>
|
|
<entry>
|
|
<para>55</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the error checking level for this
|
|
component. It contains a value from 0-9, where 0 means no extra
|
|
error checking, and 9 means the highest level of consistency
|
|
checking.</para>
|
|
<para>A value of 0xFF indicates this component does not support
|
|
changing its level of error checking.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Trace State</para>
|
|
</entry>
|
|
<entry>
|
|
<para>56</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If this field is a 0, the component’s tracing is
|
|
turned off. If this field is a 1, the component’s tracing
|
|
is turned on.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>57</para>
|
|
</entry>
|
|
<entry>
|
|
<para>7</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Description</para>
|
|
</entry>
|
|
<entry>
|
|
<para>64</para>
|
|
</entry>
|
|
<entry>
|
|
<para>192</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an ASCII string containing a readable
|
|
description of the component.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_18536">
|
|
<title>Statistics Support</title>
|
|
<para>The REQUEST_STATISTICS command as defined in
|
|
<xref linkend="dbdoclet.50569384_28924" /> is used by the VNIC client to
|
|
obtain statistic counters kept by system firmware and the physical
|
|
adapter supporting the VNIC.</para>
|
|
<para>The REQUEST_STATISTICS_RSP command is defined in
|
|
<xref linkend="dbdoclet.50569384_78993" />.</para>
|
|
<para>In the event a given VNIC does not support the retrieval of certain
|
|
of the statistics, the statistic will have a -1 value returned in
|
|
it.</para>
|
|
<para>The REQUEST_DEBUG_STATS command defined in
|
|
<xref linkend="dbdoclet.50569384_30474" /> is used by the VNIC client to
|
|
retrieve an unarchitected block of statistics that is implementation
|
|
dependent which may be used to debug firmware problems. This is an
|
|
optional command, and the actual data returned may vary from
|
|
implementation to implementation.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_28924">
|
|
<title>REQUEST_STATISTICS Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_STATISTICS.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0: If set, retrieve the physical port statistics. If
|
|
the VNIC doesn’t have authority to retrieve the physical
|
|
port statistics, the command may fail. If this bit is 0,
|
|
retrieve the logical port statistics.</para>
|
|
<para>Bit 1: If this field is set to 1, clear the statistics.
|
|
If this field is set to 0, do not clear any statistics.</para>
|
|
<para>Bit 2-7: This fields are reserved, and should be set to
|
|
0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer used by system firmware to place the VNIC
|
|
statistics block as defined in
|
|
<xref linkend="dbdoclet.50569384_71370" />.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the VNIC statistics
|
|
buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_78993">
|
|
<title>REQUEST_STATISTICS_RSP Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_STATISTICS_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_71370">
|
|
<title>VNIC Statistics Version 1</title>
|
|
<?dbhtml table-width="50%" ?><?dbfo table-width="50%" ?>
|
|
<tgroup cols="3">
|
|
<colspec colname="c1" colwidth="60*" align="center" />
|
|
<colspec colname="c2" colwidth="20*" align="center" />
|
|
<colspec colname="c3" colwidth="20*" align="center" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Promiscuous</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Received Packets</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Bytes Received</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Packets Sent</para>
|
|
</entry>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Bytes Sent</para>
|
|
</entry>
|
|
<entry>
|
|
<para>32</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Unicast Packets Sent</para>
|
|
</entry>
|
|
<entry>
|
|
<para>40</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Unicast Packets Received</para>
|
|
</entry>
|
|
<entry>
|
|
<para>48</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Multicast Packets Sent</para>
|
|
</entry>
|
|
<entry>
|
|
<para>56</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Multicast Packets Received</para>
|
|
</entry>
|
|
<entry>
|
|
<para>64</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Broadcast Packets Sent</para>
|
|
</entry>
|
|
<entry>
|
|
<para>72</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Broadcast Packets Received</para>
|
|
</entry>
|
|
<entry>
|
|
<para>80</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Alignment Errors</para>
|
|
</entry>
|
|
<entry>
|
|
<para>88</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>FCS Errors</para>
|
|
</entry>
|
|
<entry>
|
|
<para>96</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Single Collision Frames</para>
|
|
</entry>
|
|
<entry>
|
|
<para>104</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Multiple Collision Frames</para>
|
|
</entry>
|
|
<entry>
|
|
<para>112</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>SQE Test Errors</para>
|
|
</entry>
|
|
<entry>
|
|
<para>120</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Deferred Transmissions</para>
|
|
</entry>
|
|
<entry>
|
|
<para>128</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Late Collisions</para>
|
|
</entry>
|
|
<entry>
|
|
<para>136</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Excess Collisions</para>
|
|
</entry>
|
|
<entry>
|
|
<para>144</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Internal MAC Transmit Errors</para>
|
|
</entry>
|
|
<entry>
|
|
<para>152</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Carrier Sense</para>
|
|
</entry>
|
|
<entry>
|
|
<para>160</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Too Long Frames</para>
|
|
</entry>
|
|
<entry>
|
|
<para>168</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Internal MAC Receive Errors</para>
|
|
</entry>
|
|
<entry>
|
|
<para>176</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>DMA Receive Overrun</para>
|
|
</entry>
|
|
<entry>
|
|
<para>184</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>DMA Transmit Underrun</para>
|
|
</entry>
|
|
<entry>
|
|
<para>192</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Receive No Resource</para>
|
|
</entry>
|
|
<entry>
|
|
<para>200</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Too Short Frames</para>
|
|
</entry>
|
|
<entry>
|
|
<para>208</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>216</para>
|
|
</entry>
|
|
<entry>
|
|
<para>40</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_30474">
|
|
<title>REQUEST_DEBUG_STATS command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_DEBUG_STATS or
|
|
REQUEST_DEBUG_STATS_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer used by system firmware to place the VNIC
|
|
debug statistics block.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the VNIC statistics
|
|
buffer. On a REQUEST_DEBUG_STATS_RSP, contains the amount of
|
|
data filled in.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_92282">
|
|
<title>Error Reporting Support</title>
|
|
<para>If system firmware encounters an error processing requests related
|
|
to the physical adapter being virtualized by the VNIC interface, it will
|
|
generate ERROR_INDICATION commands to the VNIC client, as defined in
|
|
<xref linkend="dbdoclet.50569384_93668" />. The VNIC client may then, at
|
|
its discretion, obtain detailed error information using the
|
|
REQUEST_ERROR_INFO command as defined in
|
|
<xref linkend="dbdoclet.50569384_80533" />. It is the intent that the
|
|
VNIC client should log the detailed error information using its normal
|
|
error logging infrastructure and methods.</para>
|
|
<para>The REQUEST_ERROR_INFO_RSP command as defined in
|
|
<xref linkend="dbdoclet.50569384_80533" /> is used by firmware to indicate
|
|
the successful retrieval of error information. The retrieval of detailed
|
|
error information allows firmware to reuse the resources for tracking
|
|
that error. Detailed error information can only be requested for a
|
|
specific error once.</para>
|
|
<para>If system firmware encounters an error while the VNIC client is not
|
|
connected, firmware will log the detailed error information using
|
|
firmware error logging methods.</para>
|
|
<para>Firmware will have a finite amount of space reserved for storing
|
|
detailed error information. In some situations, some detailed error
|
|
information may be unavailable in response to a REQUEST_ERROR_INFO
|
|
command if too many errors are being logged in firmware. If the detailed
|
|
error information is overwritten prior to the VNIC client performing the
|
|
relative REQUEST_ERROR_INFO command, an error return code will be
|
|
returned.</para>
|
|
<para>If the fatal error bit is set, the VNIC firmware has encountered a
|
|
fatal error preventing it from automatically recovering from the error.
|
|
The VNIC client should use the RAS facilities to collect any error
|
|
information, collect any RAS tracing, statistics, and possibly a dump.
|
|
Once all available error data has been collected, it is the VNIC
|
|
client’s responsibility to cause the VNIC to restart. This can be
|
|
accomplished in one of two ways: by freeing its CRQ using H_FREE_CRQ, or
|
|
by initiating a VNIC reset using the H_VIOCTL FW_RESET
|
|
subfunction.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_93668">
|
|
<title>ERROR_INDICATION Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be ERROR_INDICATION.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0: If this bit is 1, this is a fatal error.</para>
|
|
<para>Bit 1-7: These fields are reserved, and should be set to
|
|
0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Error Identification</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is set to the error identification number that
|
|
can be used to retrieve detailed information about the error
|
|
using the REQUEST_ERROR_INFO command. If this value is set to
|
|
0, there is no more detailed error information to retrieve, and
|
|
the ERROR_INDICATION contains all relevant information.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Detailed Error Size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the size of the detailed error
|
|
information associated with the error.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Error Cause</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a value as detailed in
|
|
<xref linkend="dbdoclet.50569384_28607" /> showing the cause of
|
|
the error.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>14</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_80533">
|
|
<title>REQUEST_ERROR_INFO Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_ERROR_INFO.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Buffer IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the I/O bus address of a TCE-mapped
|
|
buffer to be used by system firmware to write the detailed
|
|
error information into.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Buffer Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the TCE-mapped
|
|
buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Error Identification</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the error identification from an
|
|
ERROR_INDICATION command that specifies which detailed error
|
|
information to obtain.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1">
|
|
<title>REQUEST_ERROR_INFO_RSP Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be REQUEST_ERROR_INFO_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Error Identification</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the error identification from an
|
|
ERROR_INDICATION command. This field can be used to correlate
|
|
this response to s REQUEST_ERROR_INFO command, allowing
|
|
multiple requests for errors to be outstanding at the same
|
|
time.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of data successfully
|
|
returned in the TCE-mapped buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_28607">
|
|
<title>Error Cause</title>
|
|
<?dbhtml table-width="40%" ?><?dbfo table-width="40%" ?>
|
|
<tgroup cols="2">
|
|
<colspec colname="c1" colwidth="50*" align="center" />
|
|
<colspec colname="c2" colwidth="50*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Value</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Adapter Problem</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Bus Problem</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Firmware Problem</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Device Driver Problem</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>EEH Recovery</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Firmware Updated</para>
|
|
</entry>
|
|
<entry>
|
|
<para>5</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Low Memory</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>7-65535</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_64394">
|
|
<title>Link State Change</title>
|
|
<para>This LINK_STATE_INDICATION command as defined in
|
|
<xref linkend="dbdoclet.50569384_57885" /> is an unacknowledged command
|
|
sent by system firmware to inform the VNIC client when the state of the
|
|
link changes. The VNIC client can also use QUERY_PHYS_PARMS at any time
|
|
to poll for link state changes.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_57885">
|
|
<title>LINK_STATE_INDICATION Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be LINK_STATE_INDICATION.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Physical Link State</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If this field is a 0, the physical link is down, if the
|
|
field is a 1, the physical link is up.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Logical Link State</para>
|
|
</entry>
|
|
<entry>
|
|
<para>5</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If this field is a 0, the logical link is down and the
|
|
VNIC cannot communicate with other VNICs on the same adapter,
|
|
if the field is a 1, the logical link is up, and the VNIC can
|
|
communicate with other VNICs on the same adapter.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_73515">
|
|
<title>Change MAC Address</title>
|
|
<para>The CHANGE_MAC_ADDR command defined in
|
|
<xref linkend="dbdoclet.50569384_89331" /> allows the VNIC client to
|
|
change the current MAC address. The request to change may fail due to
|
|
Access Control List entries set up by the administrator.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_89331">
|
|
<title>CHANGE_MAC_ADDR and CHANGE_MAC_ADDR_RSP Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be CHANGE_MAC_ADDR or
|
|
CHANGE_MAC_ADDR_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>MAC Address</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the new requested MAC address on a
|
|
CHANGE_MAC_ADDR command, and the current MAC address on a
|
|
CHANGE_MAC_ADDR_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_44489">
|
|
<title>Multicast Support</title>
|
|
<para>The MULTICAST_CTRL command defined in
|
|
<xref linkend="dbdoclet.50569384_45687" /> allows the VNIC client to
|
|
manage the reception of Multicast Ethernet traffic. Individual multicast
|
|
MAC addresses may be enabled and disabled, as well as all multicast
|
|
traffic.</para>
|
|
<para>The VNIC client can choose to enable more than the maximum unique
|
|
multicast Ethernet addresses as returned in the Capabilities exchange. In
|
|
the event the VNIC client does so, system firmware will either enable the
|
|
MAC address via a non-exact hashing multicast reception mechanism if the
|
|
hardware supports it, or will enable all multicast addresses. When this
|
|
is done, system firmware will report exact matches through the unique
|
|
multicast Ethernet filter via the Exact Match bit defined in the Receive
|
|
Completion Descriptor as defined in
|
|
<xref linkend="dbdoclet.50569384_54724" />. If the Exact Match bit is
|
|
off, and a multicast packet was returned in the Receive Completion
|
|
Descriptor, the multicast packet either matches a non-exact hashing
|
|
mechanism if one exists or system firmware has enabled all multicast MAC
|
|
address reception.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_45687">
|
|
<title>MULTICAST_CTRL and MULTICAST_CTRL_RSP
|
|
Commands</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be MULTICAST_CTRL or
|
|
MULTICAST_CTRL_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>MAC Address</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the new requested multicast MAC
|
|
address, as appropriate for the specific options
|
|
requested.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0: Enable specified multicast MAC address</para>
|
|
<para>Bit 1: Disable specified multicast MAC address</para>
|
|
<para>Bit 2: Enable the reception of all multicast MAC
|
|
addresses. This does not affect the multicast addresses enabled
|
|
through Bit 0.</para>
|
|
<para>Bit 3: Disable the reception of all multicast MAC
|
|
addresses. This does not affect the multicast addresses enabled
|
|
through Bit 0.</para>
|
|
<para>Bit 4-7: These bits are reserved, and should be set to
|
|
0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_64959">
|
|
<title>VPD Support</title>
|
|
<para>The VPD commands may be used by the VNIC client to collect, store,
|
|
and display VPD related to the physical adapter backing the VNIC. As the
|
|
exact adapter may change during partition mobility operations, it is
|
|
suggested this data not be relied upon operationally, and be used with
|
|
the understanding that it may change from request to request.</para>
|
|
<para>The VPD commands are defined in
|
|
<xref linkend="dbdoclet.50569384_24191" />,
|
|
<xref linkend="dbdoclet.50569384_29002" />,
|
|
<xref linkend="dbdoclet.50569384_55363" />, and
|
|
<xref linkend="dbdoclet.50569384_97352" />.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_24191">
|
|
<title>GET_VPD_SIZE Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be GET_VPD_SIZE.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>14</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_29002">
|
|
<title>GET_VPD_SIZE_RSP Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be GET_VPD_SIZE_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the VPD present.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_55363">
|
|
<title>GET_VPD Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be GET_VPD.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer used by system firmware to place the VNIC
|
|
VPD.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the VPD buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_97352">
|
|
<title>GET_VPD_RSP Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be GET_VPD_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_15227">
|
|
<title>Access Control Support</title>
|
|
<para>The VNIC may have certain Access Control Lists (ACLs) in effect,
|
|
and some of these may change dynamically. The ACL_CHANGE_INDICATION
|
|
command defined in
|
|
<xref linkend="dbdoclet.50569384_25994" /> is sent by system firmware to
|
|
the VNIC client in the event any of the ACLs have changed
|
|
dynamically.</para>
|
|
<para>The ACL_QUERY command defined in
|
|
<xref linkend="dbdoclet.50569384_78341" /> and its associated response
|
|
defined in
|
|
<xref linkend="dbdoclet.50569384_65642" /> may be used by the VNIC client
|
|
to obtain information about the ACLs in effect to enable earlier error
|
|
checking or ease of use functions.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_25994">
|
|
<title>ACL_CHANGE_INDICATION</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be ACL_CHANGE_INDICATION.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Change Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If this field is a 0, the MAC address ACLs have
|
|
changed.</para>
|
|
<para>If this field is a 1, the VLAN id ACLs have
|
|
changed.</para>
|
|
<para>All other values are reserved.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_78341">
|
|
<title>ACL_QUERY</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be ACL_QUERY.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer used by system firmware to place the ACL
|
|
information. Upon reception of a ACL_QUERY_RSP with a Success
|
|
return code, this buffer will be filled in with the structure
|
|
as defined in
|
|
<xref linkend="dbdoclet.50569384_92066" /></para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the size of the buffer mapped by the
|
|
IOBA.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_65642">
|
|
<title>ACL_QUERY_RSP</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be ACL_QUERY_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_92066">
|
|
<title>ACL Buffer</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Total Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is the total length of the ACL Buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the version of ACL Buffer layout. The
|
|
initial version should be set to 1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>MAC ACLs in effect</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a 1 if there are MAC restrictions in
|
|
effect, zero otherwise.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VLAN id ACLs in effect</para>
|
|
</entry>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a 1 if there are VLAN id ACLs in
|
|
effect, zero otherwise.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>22</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of Allowed MAC addresses</para>
|
|
</entry>
|
|
<entry>
|
|
<para>32</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the number of allowable MAC
|
|
addresses.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to array of allowed MAC addresses</para>
|
|
</entry>
|
|
<entry>
|
|
<para>36</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an offset from the start of the ACL
|
|
Buffer to an array of six byte MAC addresses.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of allowed VLAN ids</para>
|
|
</entry>
|
|
<entry>
|
|
<para>40</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the number of allowable VLAN
|
|
ids.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to array of allowed VLAN ids</para>
|
|
</entry>
|
|
<entry>
|
|
<para>44</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an offset from the start of the ACL
|
|
buffer to an array of 2 byte VLAN ids.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>48</para>
|
|
</entry>
|
|
<entry>
|
|
<para>80</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Array of allowed MAC addresses</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is the array of six byte MAC addresses, with a size
|
|
as defined in the Number of Allowed MAC address field.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Array of allowed VLAN ids</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>variable</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is the array of two byte VLAN ids, with a size as
|
|
defined in the Number of Allowed VLAN ids field.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section xml:id="dbdoclet.50569384_82039">
|
|
<title>Debugging Support</title>
|
|
<para>The TUNE command defined in
|
|
<xref linkend="dbdoclet.50569384_59278" /> may be used by the VNIC client
|
|
to opaquely pass tuning data from the VNIC client to system firmware. As
|
|
the exact firmware backing a VNIC client may change during partition
|
|
mobility operations, it is suggested this data not be relied upon
|
|
operationally, and be used with the understanding that it may change from
|
|
adapter to adapter.</para>
|
|
<para>A TUNE_RSP command defined in
|
|
<xref linkend="dbdoclet.50569384_61084" /> will be generated by system
|
|
firmware upon completion of the TUNE command.</para>
|
|
<para>This command is an optional VNIC command, and may not be supported
|
|
for all VNIC implementations or versions of system firmware.</para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_59278">
|
|
<title>TUNE Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be TUNE.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an I/O bus address referring to a
|
|
TCE-mapped buffer used by system firmware to obtain the tuning
|
|
parameters.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the VPD buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_61084">
|
|
<title>TUNE_RSP Command</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>CRQ Type</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VNIC Command</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field will be TUNE_RSP.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Code</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is a return code for the operation as defined in
|
|
<xref linkend="dbdoclet.50569384_76174" />.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<title>Subordinate CRQ Definitions</title>
|
|
<para>Frame transmission and reception is handled through the Subordinate
|
|
CRQ infrastructure, using the H_SEND_SUB_CRQ and H_SEND_SUB_CRQ_INDIRECT
|
|
hypervisor calls.</para>
|
|
<section xml:id="dbdoclet.50569384_88683">
|
|
<title>Frame Transmission</title>
|
|
<para>Since each Transmit Completion Sub-CRQ is tied to a specific
|
|
Transmit Submission Sub-CRQ, the Transmit Descriptor correlator must only
|
|
be unique for a given Transmit Completion Sub-CRQ.</para>
|
|
<para>Several versions of Transmit Descriptors exist. Each version has a
|
|
Descriptor Version byte at byte offset one in the descriptor, which
|
|
specifies the layout of the later thirty bytes. A sorted array is
|
|
returned in the LOGIN response specifying all versions of transmit
|
|
descriptor supported by the VNIC. The versions of the transmit descriptor
|
|
offering the best performance appear in the array first. All VNIC
|
|
versions will support Transmit Descriptor Version Zero defined in
|
|
<xref linkend="dbdoclet.50569384_46136" />, but that version may not
|
|
offer the best performance.</para>
|
|
<para>Transmit Descriptor Version Two defined in
|
|
<xref linkend="dbdoclet.50569384_48728" /> is designed to be used in
|
|
combination with a previous use of Transmit Descriptor Version Zero or
|
|
Transmit Descriptor Version One defined in
|
|
<xref linkend="dbdoclet.50569384_15953" /></para>
|
|
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_46136">
|
|
<title>Transmit Descriptor Version Zero</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Sub-CRQ Format</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This value should be set to 0x80 to indicate a valid
|
|
Sub-CRQ event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Descriptor Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 0 for a Version Zero Transmit
|
|
Descriptor</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0: If set to 1, this frame should use the large send
|
|
offload feature of the physical adapter, assuming it was
|
|
previously enabled through the use of CONTROL_IP_OFFLOAD
|
|
command.</para>
|
|
<para>Bit 1: If set to 1, this frame should use the IP checksum
|
|
feature of the physical adapter, assuming it was previously
|
|
enabled through the use of CONTROL_IP_OFFLOAD command.</para>
|
|
<para>Bit 2: If set to 1, this frame should use the TCP
|
|
checksum feature of the physical adapter, assuming it was
|
|
previously enabled through the use of CONTROL_IP_OFFLOAD
|
|
command.</para>
|
|
<para>Bit 3: If set to 1, this frame should use the physical
|
|
adapter’s capability of inserting VLAN headers, using the
|
|
VLAN header field as the source for the values to
|
|
insert.</para>
|
|
<para>Bit 4:If set to 1, this frame should use the UDP checksum
|
|
feature of the physical adapter, assuming it was previously
|
|
enabled through the use of CONTROL_IP_OFFLOAD command.</para>
|
|
<para>Bit 5: If set to 1, this frame spans multiple transmit
|
|
descriptors.</para>
|
|
<para>Bit 6: If set to 1, this frame contains the last fragment
|
|
of a complete packet for transmission.</para>
|
|
<para>Bit 7:If set to 1, this frame requires a transmit
|
|
completion event to be posted to the VNIC client’s
|
|
Transmit Completion Sub-CRQ. If set to 0, no completion event
|
|
will be generated unless an error occurred.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IP Header offset</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0:If set to zero, this frame contains an IPv4 frame.
|
|
If set to 1, this frames contains an IPv6 frame.</para>
|
|
<para>Bits 1-7: This field should be set to the offset of IP
|
|
header in the first descriptor of a chain if any checksum
|
|
offload or large send offload is enabled.</para>
|
|
<para>If neither checksum offload nor large send offload are
|
|
enabled, this should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>TCP/UDP Header offset or IP Data offset</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>In the first descriptor of a chain, if any checksum
|
|
offload or large send offload function should be done for this
|
|
packet, this field must be set to the offset of the first byte
|
|
of data after the IP header and extension headers.</para>
|
|
<para>If no checksum offload or large send offload function
|
|
should be done for this packet, this field must be set to
|
|
0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VLAN Header</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If VLAN header insertion has been enabled, this field
|
|
contains the VLAN header to be inserted if indicated in the
|
|
Flags byte.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>MSS Size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If large send offload is enabled, this field contains the
|
|
MSS size.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is set to a unique opaque value generated by
|
|
the VNIC client that allows the device driver to correlate a
|
|
transmit submission to an eventual completion. This value must
|
|
be set even if the Completion Required bit is set to 0 in the
|
|
event an error happens.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an I/O bus address valid for the VNIC
|
|
device that refers to the first chunk of the transmit frame for
|
|
this descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This contains the length of the frame fragment pointed to
|
|
by IOBA1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an I/O bus address valid for the VNIC
|
|
device that refers to the second fragment of the transmit frame
|
|
for this descriptor. If the corresponding length field is 0,
|
|
this field is ignored.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>28</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This contains the length of the frame fragment pointed to
|
|
by IOBA2. If IOBA2 is invalid, this field should be set to
|
|
0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_32652">
|
|
<title>Transmit Completion Descriptor</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Sub-CRQ Format</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This value should be set to 0x80 to indicate a valid
|
|
Sub-CRQ event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Number of Completions</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is the number of return code and correlator pairs of
|
|
this descriptor that are valid. It must be a value from 1 to
|
|
5.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Return Codes</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>10</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is an array of 5 two byte integer return codes as
|
|
defined in
|
|
<xref linkend="dbdoclet.50569384_14812" />.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlators</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This is an array of five four-byte correlator values as
|
|
taken from the Transmit Submission Descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_15953">
|
|
<title>Transmit Descriptor Version One</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Sub-CRQ Format</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This value should be set to 0x80 to indicate a valid
|
|
Sub-CRQ event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Descriptor Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 1 for a Version One Transmit
|
|
Descriptor</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0: If set to 1, this frame should use the large send
|
|
offload feature of the physical adapter, assuming it was
|
|
previously enabled through the use of CONTROL_IP_OFFLOAD
|
|
command.</para>
|
|
<para>Bit 1: If set to 1, this frame should use the IP checksum
|
|
feature of the physical adapter, assuming it was previously
|
|
enabled through the use of CONTROL_IP_OFFLOAD command.</para>
|
|
<para>Bit 2: If set to 1, this frame should use the TCP
|
|
checksum feature of the physical adapter, assuming it was
|
|
previously enabled through the use of CONTROL_IP_OFFLOAD
|
|
command.</para>
|
|
<para>Bit 3: If set to 1, this frame should use the physical
|
|
adapter’s capability of inserting VLAN headers, using the
|
|
VLAN header field as the source for the values to
|
|
insert.</para>
|
|
<para>Bit 4:If set to 1, this frame should use the UDP checksum
|
|
feature of the physical adapter, assuming it was previously
|
|
enabled through the use of CONTROL_IP_OFFLOAD command.</para>
|
|
<para>Bit 5: If set to 1, this frame spans multiple transmit
|
|
descriptors.</para>
|
|
<para>Bit 6: If set to 1, this frame contains the last fragment
|
|
of a complete packet for transmission.</para>
|
|
<para>Bit 7:If set to 1, this frame requires a transmit
|
|
completion event to be posted to the VNIC client’s
|
|
Transmit Completion Sub-CRQ. If set to 0, no completion event
|
|
will be generated unless an error occurred.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IP Header offset</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0:If set to zero, this frame contains an IPv4 frame.
|
|
If set to 1, this frames contains an IPv6 frame.</para>
|
|
<para>Bits 1-7: This field should be set to the offset of IP
|
|
header in the first descriptor of a chain if any checksum
|
|
offload or large send offload is enabled.</para>
|
|
<para>If neither checksum offload nor large send offload are
|
|
enabled, this should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>TCP/UDP Header offset or IP Data offset</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>In the first descriptor of a chain, if any checksum
|
|
offload or large send offload function should be done for this
|
|
packet, this field must be set to the offset of the first byte
|
|
of data after the IP header and extension headers.</para>
|
|
<para>If no checksum offload or large send offload function
|
|
should be done for this packet, this field must be set to
|
|
0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>VLAN Header</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If this frame is a VLAN-tagged frame, this field contains
|
|
the VLAN tag even if it is already present in the frame, and
|
|
even if VLAN offload is disabled. If already present in the
|
|
frame, this merely provides a hint to enable fast transmission
|
|
of this frame. If the VLAN header is not present in the frame,
|
|
this field contains the VLAN header to be inserted if indicated
|
|
in the Flags byte.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>MSS Size</para>
|
|
</entry>
|
|
<entry>
|
|
<para>9</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If large send offload is enabled, this field contains the
|
|
MSS size.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is set to a unique opaque value generated by
|
|
the VNIC client that allows the device driver to correlate a
|
|
transmit submission to an eventual completion. This value must
|
|
be set even if the Completion Required bit is set to 0 in the
|
|
event an error happens.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an I/O bus address valid for the VNIC
|
|
device that refers to the first chunk of the transmit frame for
|
|
this descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This contains the length of the frame fragment pointed to
|
|
by IOBA1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Destination MAC address</para>
|
|
</entry>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>6</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the destination MAC address as
|
|
specified in the frame to be sent. The frame still must contain
|
|
this information; this merely provides a hint to enable fast
|
|
transmission of this frame.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Ethertype</para>
|
|
</entry>
|
|
<entry>
|
|
<para>30</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains a copy of the ethertype from the
|
|
specified frame to be sent. The frame still must contain this
|
|
information; this merely provides a hint to enable fast
|
|
transmission of this frame.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_48728">
|
|
<title>Transmit Descriptor Version Two</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Sub-CRQ Format</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This value should be set to 0x80 to indicate a valid
|
|
Sub-CRQ event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Descriptor Version</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is 2 for a Version Two Transmit Descriptor.
|
|
This transmit descriptor should be used following another valid
|
|
Transmit Descriptor Format such as Version Zero or Version One.
|
|
It inherits any advanced features from the previous Transmit
|
|
Descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0-5: These bits are reserved, and should be set to
|
|
0.</para>
|
|
<para>Bit 6: If set to 1, this frame contains the last fragment
|
|
of a complete packet for transmission.</para>
|
|
<para>Bit 7:If set to 1, this frame requires a transmit
|
|
completion event to be posted to the VNIC client’s
|
|
Transmit Completion Sub-CRQ. If set to 0, no completion event
|
|
will be generated unless an error occurred.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an I/O bus address valid for the VNIC
|
|
device that refers to the first chunk of the transmit frame for
|
|
this descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the frame fragment
|
|
pointed to by IOBA1.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>12</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is set to a unique opaque value generated by
|
|
the VNIC client that allows the device driver to correlate a
|
|
transmit submission to an eventual completion. This value must
|
|
be set even if the Completion Required bit is set to 0 in the
|
|
event an error happens.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an I/O bus address valid for the VNIC
|
|
device that refers to the second chunk of the transmit frame
|
|
for this descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This contains the length of the frame fragment pointed to
|
|
by IOBA2.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an I/O bus address valid for the VNIC
|
|
device that refers to the third chunk of the transmit frame for
|
|
this descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length3</para>
|
|
</entry>
|
|
<entry>
|
|
<para>28</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This contains the length of the frame fragment pointed to
|
|
by IOBA3.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</section>
|
|
<section>
|
|
<title>Frame Reception</title>
|
|
<para>Multiple Receive Buffer Add Sub-CRQs can be configured to allow the
|
|
VNIC client to efficiently allocate receive buffers of different sizes.
|
|
In the event multiple Sub-CRQs are allocated for this purpose, it is the
|
|
VNIC client’s responsibility to always allocate the receive buffer
|
|
size for the Receive Buffer Add Sub-CRQs that are returned by system
|
|
firmware as defined in
|
|
<xref linkend="dbdoclet.50569384_97019" />.</para>
|
|
<para>System firmware will configure the correct buffer sizes based on
|
|
the current VNIC maximum transmission unit, current number of Receive
|
|
Buffer Add Sub-CRQs, and physical adapter capabilities. In all cases, all
|
|
receive buffers given to an individual Receive Buffer Add Sub-CRQ must be
|
|
of the same size.</para>
|
|
<para>Since a Receive Buffer Correlator may appear on only a single
|
|
Receive Completion Sub-CRQ, the Receive Buffer Correlators must be unique
|
|
for a given Receive Completion Sub-CRQ.</para>
|
|
<para>Since every buffer added to all Receive Buffer Add Sub-CRQs
|
|
associated with a given Receive Completion Sub-CRQ could be received
|
|
simultaneously, each Receive Completion Sub-CRQ should be sized to handle
|
|
every possible buffer given to system firmware on its associated Receive
|
|
Buffer Add Sub-CRQs.</para>
|
|
<para>Some implementations of VNIC devices may have alignment
|
|
requirements. To ensure efficient use of receive buffers, VNIC clients
|
|
are encouraged to use at least cache-line aligned receive buffers.</para>
|
|
<para>.</para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_54724">
|
|
<title>Receive Completion Descriptor</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Sub-CRQ Format</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid Sub-CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Flags</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Bit 0: If this bit is a 1, it indicates system firmware
|
|
has validated the IP checksum field in the referenced packet
|
|
was verified to be good.</para>
|
|
<para>Bit 1: If this bit is a 1, it indicates system firmware
|
|
has validated the TCP/UDP checksum field in the referenced
|
|
packet was verified to be good.</para>
|
|
<para>Bit 2: If this bit is a 1, it indicates this frame
|
|
contains the end of a packet.</para>
|
|
<para>Bit 3: If this bit is a 1, this packet is an exact match
|
|
for one of the requested multicast MAC addresses for this
|
|
VNIC.</para>
|
|
<para>Bit 4: If this bit is a 1, the TCP/UDP checksum field
|
|
contains either the complete TCP/UDP checksum or a partial
|
|
TCP/UDP checksum in the case of an IP fragment packet.</para>
|
|
<para>Bit 5-7: These bits are reserved, and will be set to
|
|
0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Offset to start of frame data</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains an offset to the start of actual
|
|
frame data in the returned frame.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of valid data in this
|
|
descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is the correlator taken from the Receive
|
|
Buffer Add descriptor that allows the VNIC client to associate
|
|
this completion with a previously added receive buffer.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>TCP/UDP Checksum</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>2</para>
|
|
</entry>
|
|
<entry>
|
|
<para>If the TCP/UDP checksum bit is a 1, this field contains
|
|
either the complete packet’s TCP/UDP checksum or a
|
|
partial TCP/UDP checksum in the event the packet is an IP
|
|
fragment.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>18</para>
|
|
</entry>
|
|
<entry>
|
|
<para>14</para>
|
|
</entry>
|
|
<entry>
|
|
<para>These fields are reserved, and will be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
<para> </para>
|
|
<table frame="all" pgwide="1" xml:id="dbdoclet.50569384_19523">
|
|
<title>Receive Buffer Add Descriptor</title>
|
|
<?dbhtml table-width="90%" ?><?dbfo table-width="90%" ?>
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="20*" align="center" />
|
|
<colspec colname="c2" colwidth="10*" align="center" />
|
|
<colspec colname="c3" colwidth="10*" align="center" />
|
|
<colspec colname="c4" colwidth="60*" />
|
|
<thead>
|
|
<row>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Field Name</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Byte Offset</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<emphasis role="bold">Length</emphasis>
|
|
</para>
|
|
</entry>
|
|
<entry align="center">
|
|
<para>
|
|
<emphasis role="bold">Definition</emphasis>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody valign="middle">
|
|
<row>
|
|
<entry>
|
|
<para>Sub-CRQ Format</para>
|
|
</entry>
|
|
<entry>
|
|
<para>0</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This should be set to 0x80 to indicate a valid Sub-CRQ
|
|
event.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>1</para>
|
|
</entry>
|
|
<entry>
|
|
<para>7</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This bytes are reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Correlator</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field is an opaque value that is returned to the
|
|
VNIC client when the buffer described by this descriptor is
|
|
used to receive a frame from the network.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>IOBA</para>
|
|
</entry>
|
|
<entry>
|
|
<para>16</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the I/O bus address for the
|
|
TCE-mapped memory buffer to be used for frame reception.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Length</para>
|
|
</entry>
|
|
<entry>
|
|
<para>20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>4</para>
|
|
</entry>
|
|
<entry>
|
|
<para>This field contains the length of the memory buffer
|
|
described by this descriptor.</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Reserved</para>
|
|
</entry>
|
|
<entry>
|
|
<para>24</para>
|
|
</entry>
|
|
<entry>
|
|
<para>8</para>
|
|
</entry>
|
|
<entry>
|
|
<para>These bytes are reserved, and should be set to 0.</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
</section>
|
|
</section>
|
|
</appendix>
|