Hi Nikhil, On Mon, Jul 16, 2018 at 11:25:45AM +0530, Rao, Nikhil wrote: > On 7/10/2018 4:26 PM, Pavan Nikhilesh wrote: > > +int __rte_experimental > > +rte_event_eth_tx_adapter_caps_get(uint8_t dev_id, uint32_t *caps) > > +{ > > The caps get API needs to be similar to rx adapter caps get i.e. it needs to > > have the eth_port_id as a parameter so that the underlying event dev driver > > can > > expose INTERNAL PORT capability as not all ethdev drivers have the > > capability > > to interact with the eventdevs internal port. > > > > rte_event_eth_tx_adapter_caps_get(uint8_t dev_id, uint16_t eth_port_id, > > uint32_t *caps); > Hi Pavan, > > Is querying the INTERNAL PORT on a per ethdev basis useful to the > application ?
If an application chooses to use 2 ports one with INTERNAL PORT capability and one _without_ it then it would be useful to have per ethdev based classification similar to Rx adapter. The application can classify events based on event type RTE_EVENT_TYPE_ETHDEV & RTE_EVENT_TYPE_ETH_RX_ADAPTER to segregate between INTERNAL & NON-INTERNAL port at ingress side and enqueue it to either rte_event_eth_tx_adapter_enqueue or to the SINGLE link queue respectively. Also, I dont think eventdev should iterate over all probed ethdevs and give the overall caps as an application might want only a specific ethdev to be connected to the event tx adapter. > > For e.g., the txa_init() function in the adapter implementation can only > decide to use the internal port if it is supported for all ethdevs, > hence I left that upto the eventdev PMD to decide - i.e., it could > iterate across txa->dev_count eth devices to make that determination. > For caps in general, I agree it makes sense to pass in the ethdev, but > the INTERNAL PORT didn't seem useful on a per ethdev basis. > > We could also replace caps_get with something like a > rte_event_eth_tx_adapter_internal_port_check(dev_id) and add a per > ethdev caps if needed later. > > Thanks, > Nikhil Thanks, Pavan.