The goal of this patch series is to remove all the switch/case from all
the odp_packet_io.c functions and go through a generic interface (function 
pointers) that
each pktio implementation should implement.

This means that adding a new pktio type now only requires a few single steps
and no changes in odp_packet_io.c:
* Implement a pktio_if_opts_t structure
= Make sure that the new setup function will only use the interfaces it is 
intended to
= Maybe reorder packet_io type enum to handle type priority
* Add the new pktio_type to the enum and to the global pktio_if_opts structure
* Compile and run !

This way, any port of ODP should be able to add its own interface type without 
touching odp_packet_io.c

The patch series is a bit long. It starts with a bit of cleanup and 
reorganizing functions in different files,
then add a bunch of new methods to move from the basic odp_packet_io.c 
functions to pktio type specific functions.
The last one is still a bit big, but I'm not sure how to split it to make it 
more human friendly to read/understand.
It changes a little bit the existing open/close function API to match the new 
interface, remove all declaration from headers and switch to the new function 
pointer interface

Nicolas Morey-Chaisemartin (15):
  linux-generic: pktio: replace linux/if.h by net/if.h
  checkpatch: remove check for potential ether_addr_copy
  linux-generic: packet_socket: move socket_mmap to another file
  linux-generic: packet_io: move loopback to another file
  linux-generic: packet_loop: add function get MTU
  linux-generic: packet_loop: add method to get mac address
  linux-generic: packet_loop: add method to close a loopback pktio
  linux-generic: packet_loop: add method for setting promisc mode
  linux-generic: packet_pool: add method to get promisc mode
  linux-generic: packet_io: add mtu_get methods for all pktio_socks
  linux-generic: packet_io: add mac_addr_get methods for all pktio_socks
  linux-generic: packet_io: promisc_mode_set methods for all pktio_socks
  linux-generic: packet_io: promisc_mode_get methods for all pktio_socks
  linux-generic: packet_io: packet_sock_* self closes on error during
    setup
  linux-generic: packet_io: use generic interface for all pktio
    implementations

 platform/linux-generic/Makefile.am                 |   3 +
 .../linux-generic/include/odp_packet_io_internal.h |  31 +-
 platform/linux-generic/include/odp_packet_socket.h |  44 +-
 platform/linux-generic/odp_packet_io.c             | 272 +--------
 platform/linux-generic/odp_packet_io_ops.c         |  14 +
 platform/linux-generic/odp_packet_loop.c           | 116 ++++
 platform/linux-generic/odp_packet_socket.c         | 618 +++++----------------
 platform/linux-generic/odp_packet_socket_mmap.c    | 543 ++++++++++++++++++
 scripts/checkpatch.pl                              |  10 -
 9 files changed, 894 insertions(+), 757 deletions(-)
 create mode 100644 platform/linux-generic/odp_packet_io_ops.c
 create mode 100644 platform/linux-generic/odp_packet_loop.c
 create mode 100644 platform/linux-generic/odp_packet_socket_mmap.c

-- 
2.4.2.3.g8277175

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to