In addition, the following methods are required for the proper setup and teardown of DPDK internals (structures and processes):
```
int udpdk_init(int argc, char *argv[]);
void udpdk_interrupt(int signum);
void udpdk_cleanup(void);
```
*Note: select() is not implemented yet*
## Examples
The `apps/` folder contains two simple examples: a [ping-pong](apps/pingpong) and a [pkt-gen](apps/pktgen) application.
## How it works
UDPDK runs in two separate processes: the primary is the one containing the application logic (i.e. where syscalls are called), while the secondary (*poller*) continuously polls the NIC to send and receive data. The packets are exchanged between the application and the poller through shared memory, using lockless ring queues.
## License
UDPDK is released under [BSD 3-Clause license](LICENSE).