virtio — archive
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
— [Date Index]
| [Thread Index]
| [Month Index]
| [List Home]
[PATCH requirements v4 0/7] virtio net requirements for 1.4
? 2023/8/17 ??12:52, Parav Pandit ??:
>
>>
From: Heng Qi <[email protected]>
>> Sent: Wednesday, August 16, 2023 5:12 PM
>>> +/* command 1 */
>>> +struct flow_filter_capabilities {
>>> + le16 start_vq_index;
>>> + le16 num_flow_filter_vqs;
>>> + le16 max_flow_groups;
>>> + le16 max_group_priorities; /* max priorities of the group */
>>> + le32 max_flow_filters_per_group;
>>> + le32 max_flow_filters; /* max flow_id in add/del
>>> + * is equal = max_flow_filters - 1.
>>> + */
>>> + u8 max_priorities_per_group;
>> + u8 padding[3];
>>
> Ack.
>
>>> +struct virtio_net_rff_group_add {
>>> + le16 priority;
>> Please explicitly explain the relationship between the number and the priority,
>> for example, the smaller the number, the higher the priority :)
>>
> Right. Will do.
> I was thinking of higher the value higher the priority, so that one doesnt need to invert this in brain every time seeing the priority field. :)
>
It's ok :)
>>> + le16 group_id;
>>> +};
>>> +
>>> +
>>> +struct virtio_net_rff_group_delete {
>>> + le16 group_id;
>>> +
>>> +```
>>> +
>>> +3. Flow filter entry add/modify, delete over flow vq:
>>> +
>>> +```
>>> +struct virtio_net_rff_add_modify {
>>> + u8 flow_op;
>>> + u8 padding;
>> s/padding/priority
>>
> Ack.
>
>> Each rule needs a priority.
>>
>>> + u16 group_id;
>>> + le32 flow_id;
>>> + struct match_criteria mc;
>>> + struct destination dest;
>>> + struct action action;
>>> +
>>> + struct match_criteria mask; /* optional */
>>> +};
>>> +
>>> +struct virtio_net_rff_delete {
>>> + u8 flow_op;
>>> + u8 padding[3];
>>> + le32 flow_id;
>>> +};
>>> +
>>> +```
>>> +
>>> +4. Flow filter commands over cvq:
>>> +
>>> +```
>>> +
>>> +struct virtio_net_rff_cmd {
>>> + u8 class; /* RFF class */
>>> + u8 commands; /* RFF cmd = A */
>>> + u8 command-specific-data[]; /* contains struct
>> virtio_net_rff_add_modify or
>>> +
* struct virtio_net_rff_delete
>> For flow vq, we no longer distinguish operations by command, but by flow_op.
>> But for ctrlq, this field will be carried. We should make it clear that when ctrlq is
>> delivered based on cmd, the flow_op field is ignored.
>>
> Since cvq is only the communication medium for delivering of command, it is better use the flow_op as is, and cvq commands field to be ignored.
> This way, software layers are more organized cvq or flow vq.
Agree.
Thanks!
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
— [Date Index]
| [Thread Index]
| [Month Index]
| [List Home]