On 10/12/20 6:14 PM, Thomas Monjalon wrote: > 12/10/2020 11:56, Slava Ovsiienko: >> Hi, Andrew >> >> Thank you for the comments. >> >> We have two approaches how to specify multiple segments to split Rx packets: >> 1. update queue configuration structure >> 2. introduce new rx_queue_setup_ex() routine with extra parameters. >> >> For [1] my only actual dislike is that we would have multiple places to >> specify >> the pool - in rx_queue_setup() and in the config structure. So, we should >> implement some checking (if we have offload flag set we should check >> whether mp parameter is NULL and segment descriptions array pointer/size >> is provided, if no offload flag set - we must check the description array is >> empty). >> >>> @Thomas, @Ferruh: I'd like to hear what other ethdev maintainers think >>> about it. >> >> Yes, it would be very nice to hear extra opinions. Do we think the providing >> of extra API function is worse than extending existing structure, introducing >> some conditional ambiguity and complicating the parameter compliance >> check? > > Let's try listing pros and cons of each approach, so we can conclude. > > 1/ update queue config struct > > 1.1 pro: keep same queue setup function
pro: no code duplication > 1.2 con: two mempool pointers (struct or function) > 1.3 con: variable size of segment description array > > 2/ new queue setup function > > 2.1 con: two functions for queue setup con: code duplication or refactoring of existing stable code > 2.2 pro: mempool pointer is not redundant > 2.3 pro: segment description array size defined by the caller > > What else I'm missing? >