> /** > + * Driver loading > + * > + * This function is used by the application to load NIC drivers into ODP. > + * Calls to this function are optional, but should be performed (if any) > + * after odp_init_global > + * > + * > + * @param filename Driver shared lib (dynamic library) > + * > + * @retval 0 on success > + * @retval <0 on failure > + * > + */ > +int odp_load_driver(const char *filename);
Why application should explicitly need to load a driver ? Why it cannot happen as part of odp_pktio_open() ? To me a better approach would be: * user reads implementation documentation or uses system commands to find a list of available interfaces * odp_global_init() finds out available pktio interfaces and drivers for those * application opens the interface the user commands (just like today) * pktio_open call loads the driver Or with more ODP support: * odp_global_init() finds out available pktio interfaces and drivers for those * a new API call lists all available interfaces * application chooses an interface from the list and calls open * pktio_open call loads the driver -Petri