I had great hopes for this library, because such code exists in almost every real world application. But the current version falls short.
So what this library does is turn a message based protocol (netlink) into a set of callbacks. Not sure if that is all that useful processing messages is often easier. It would be more useful if the library took the netlink and maintained a set of tables (interfaces, neighbours, routes) using DPDK infrastructure and did it as efficiently as possible with RCU. On a real world router with 1M routes, the processing of netlink can be a significant chore. It has to be done efficiently. Probably needs to use rte_ctrl_thread() and not overload the interrupt thread. Also, please don't reinvent netlink parsing. Use a standard library like libmnl. Please use doxygen format for API documentation > +/* This function should be called by the implementation whenever it notices > + * change in the network configuration. The arguments are: > + * - ev : pointer to filled event data structure (all fields are expected to > be > + * filled, with the exception of 'port_id' for all proxy/port related > + * events: this function clones the event notification for each bound > port > + * and fills 'port_id' appropriately). > + * - px : proxy node when given event is proxy/port related, otherwise pass > NULL > + */ > +void ifpx_notify_event(struct rte_ifpx_event *ev, struct ifpx_proxy_node > *px); > +