[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [PATCH requirements v4 5/7] net-features: Add n-tuple receive flow filters requirements
> From: Heng Qi <hengqi@linux.alibaba.com> > 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. :) > > + 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.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]