[PATCH requirements v4 0/7] virtio net requirements for 1.4

From
Heng Qi <>
Date
2023-08-17T05:15:00+00:00
ID
Thread
[PATCH requirements v4 0/7] virtio net requirements for 1.4
å 2023/8/17 äå12:52, Parav Pandit åé:
From: Heng Qi <> 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!