On Thu, Nov 24 2022, Jason Wang <[email protected]> wrote:
> On Thu, Nov 24, 2022 at 5:08 AM Michael S. Tsirkin <[email protected]> wrote:
>> +All the group administration commands are of the following form:
>> +
>> +\begin{lstlisting}
>> +struct virtio_admin_cmd {
>> + /* Device-readable part */
>> + le16 opcode;
>> + /*
>> + * 1 - SR-IOV
>> + * 2 - 65535 reserved
>> + */
>> + le16 group_type;
>> + /* unused, reserved for future extensions */
>> + u8 reserved1[12];
>> + le64 group_member_id;
>> + u8 command_specific_data[];
>> +
>> + /* Device-writable part */
>> + le16 status;
>> + le16 status_qualifier;
>> + /* unused, reserved for future extensions */
>> + u8 reserved2[4];
>> + u8 command_specific_result[];
>> +};
>> +\end{lstlisting}
>> +
>> +For all commands, \field{opcode}, \field{group_type} and if
>> +necessary \field{group_member_id} and \field{command_specific_data} are
>> +set by the driver, and the owner device sets \field{status} and if
>> +needed \field{status_qualifier} and
>> +\field{command_specific_result}.
>> +
>> +As a rule, any unused device-readable fields are set to zero by the driver
>> +and ignored by the device. Any unused device-writeable fields are set to
>> zero
>> +by the device and ignored by the driver.
>> +
>> +\field{opcode} specifies the command. The valid
>> +values for \field{opcode} can be found in the following table:
>> +
>> +\begin{tabular}{|l|l|}
>> +\hline
>> +opcode & Name & Command Description \\
>> +\hline \hline
>> +0x0000 - 0x7FFF & - & Group administration commands \\
>> +\hline
>> +0x8000 - 0xFFFF & - & Reserved \\
>> +\hline
>> +\end{tabular}
>> +
>> +The \field{group_type} specifies the group type identifier.
>
> So this means there's no way for having a group specific adminq? E.g
> one queue for SR-IOV and another for SIOV.
I don't see anything that prevents the device from exposing two admin
queues... do you mean that we should provide a mechanism for the device
to mandate that only commands for a certain group id can go on a certain
admin queue?
>
>> +The \field{group_member_id} specifies the member identifier within the
>> group.
>> +See section \ref{sec:Introduction / Terminology / Device group}
>> +for the definition of the group type identifier and group member
>> +identifier.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]