Only review comment was to change the copyright of odp_packet_io.h to 2014
from Anders.

Since the comment is trivial, didn't send patch v2.

Incorporated the changes and merged!

Thanks,
Venky

On 7 November 2014 19:08, <[email protected]> wrote:

> From: Venkatesh Vivekanandan <[email protected]>
>
> - Enabled crypto support in ODP-DPDK by calling odp_crypto_init_global
>   during initialization.
> - Added platform specific odp_packet_io.h
> - Added odp_pktio_get_mac_addr API for ODP-DPDK.
> - Fixed data_len of mbuf.
> - set USE_MAC_ADDR_HACK to 0 in odp_ipsec.c to use odp API to get mac
>   addr in ODP-DPDK platform. This is a temporary fix until ipsec app
>   is modified to use odp_pktio_get_mac_addr permanently.
>
> Signed-off-by: Venkatesh Vivekanandan <[email protected]>
> ---
>  platform/linux-dpdk/Makefile.am                 |   2 +-
>  platform/linux-dpdk/include/api/odp_packet_io.h | 152
> ++++++++++++++++++++++++
>  platform/linux-dpdk/odp_init.c                  |   5 +
>  platform/linux-dpdk/odp_packet.c                |   1 +
>  platform/linux-dpdk/odp_packet_io.c             |  12 ++
>  5 files changed, 171 insertions(+), 1 deletion(-)
>  create mode 100644 platform/linux-dpdk/include/api/odp_packet_io.h
>
> diff --git a/platform/linux-dpdk/Makefile.am
> b/platform/linux-dpdk/Makefile.am
> index 3d68729..686df6a 100644
> --- a/platform/linux-dpdk/Makefile.am
> +++ b/platform/linux-dpdk/Makefile.am
> @@ -38,7 +38,7 @@ include_HEADERS = \
>
> $(top_srcdir)/platform/linux-generic/include/api/odp_init.h \
>
> $(top_srcdir)/platform/linux-generic/include/api/odp_packet_flags.h \
>                   $(srcdir)/include/api/odp_packet.h \
> -
>  $(top_srcdir)/platform/linux-generic/include/api/odp_packet_io.h \
> +                 $(srcdir)/include/api/odp_packet_io.h \
>
> $(top_srcdir)/platform/linux-generic/include/api/odp_queue.h \
>
> $(top_srcdir)/platform/linux-generic/include/api/odp_rwlock.h \
>
> $(top_srcdir)/platform/linux-generic/include/api/odp_schedule.h \
> diff --git a/platform/linux-dpdk/include/api/odp_packet_io.h
> b/platform/linux-dpdk/include/api/odp_packet_io.h
> new file mode 100644
> index 0000000..0c3be54
> --- /dev/null
> +++ b/platform/linux-dpdk/include/api/odp_packet_io.h
> @@ -0,0 +1,152 @@
> +/* Copyright (c) 2013, Linaro Limited
> + * All rights reserved.
> + *
> + * SPDX-License-Identifier:     BSD-3-Clause
> + */
> +
> +
> +/**
> + * @file
> + *
> + * ODP Packet IO
> + */
> +
> +#ifndef ODP_PACKET_IO_H_
> +#define ODP_PACKET_IO_H_
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#include <odp_std_types.h>
> +#include <odp_buffer_pool.h>
> +#include <odp_packet.h>
> +#include <odp_queue.h>
> +
> +#include <odp_pktio_types.h>
> +
> +/** ODP packet IO handle */
> +typedef uint32_t odp_pktio_t;
> +
> +/** Invalid packet IO handle */
> +#define ODP_PKTIO_INVALID 0
> +
> +/**
> + * Open an ODP packet IO instance
> + *
> + * @param dev    Packet IO device
> + * @param pool   Pool to use for packet IO
> + * @param params Set of parameters to pass to the arch dependent
> implementation
> + *
> + * @return ODP packet IO handle or ODP_PKTIO_INVALID on error
> + */
> +odp_pktio_t odp_pktio_open(const char *dev, odp_buffer_pool_t pool,
> +                          odp_pktio_params_t *params);
> +
> +/**
> + * Close an ODP packet IO instance
> + *
> + * @param id  ODP packet IO handle
> + *
> + * @return 0 on success or -1 on error
> + */
> +int odp_pktio_close(odp_pktio_t id);
> +
> +/**
> + * Receive packets
> + *
> + * @param id          ODP packet IO handle
> + * @param pkt_table[] Storage for received packets (filled by function)
> + * @param len         Length of pkt_table[], i.e. max number of pkts to
> receive
> + *
> + * @return Number of packets received or -1 on error
> + */
> +int odp_pktio_recv(odp_pktio_t id, odp_packet_t pkt_table[], unsigned
> len);
> +
> +/**
> + * Send packets
> + *
> + * @param id           ODP packet IO handle
> + * @param pkt_table[]  Array of packets to send
> + * @param len          length of pkt_table[]
> + *
> + * @return Number of packets sent or -1 on error
> + */
> +int odp_pktio_send(odp_pktio_t id, odp_packet_t pkt_table[], unsigned
> len);
> +
> +/**
> + * Set the default input queue to be associated with a pktio handle
> + *
> + * @param id   ODP packet IO handle
> + * @param queue default input queue set
> + * @return  0 on success or -1 on error
> + */
> +int odp_pktio_inq_setdef(odp_pktio_t id, odp_queue_t queue);
> +
> +/**
> + * Get default input queue associated with a pktio handle
> + *
> + * @param id  ODP packet IO handle
> + *
> + * @return Default input queue set or ODP_QUEUE_INVALID on error
> + */
> +odp_queue_t odp_pktio_inq_getdef(odp_pktio_t id);
> +
> +/**
> + * Remove default input queue (if set)
> + *
> + * @param id  ODP packet IO handle
> + *
> + * @return 0 on success or -1 on error
> + */
> +int odp_pktio_inq_remdef(odp_pktio_t id);
> +
> +/**
> + * Query default output queue
> + *
> + * @param id ODP packet IO handle
> + *
> + * @return Default out queue or ODP_QUEUE_INVALID on error
> + */
> +odp_queue_t odp_pktio_outq_getdef(odp_pktio_t id);
> +
> +/**
> + * Store packet input handle into packet
> + *
> + * @param pkt  ODP packet buffer handle
> + * @param id   ODP packet IO handle
> + *
> + * @return
> + */
> +void odp_pktio_set_input(odp_packet_t pkt, odp_pktio_t id);
> +
> +/**
> + * Get stored packet input handle from packet
> + *
> + * @param pkt  ODP packet buffer handle
> + *
> + * @return Packet IO handle
> + */
> +odp_pktio_t odp_pktio_get_input(odp_packet_t pkt);
> +
> +/**
> + * Defines the maximum length of mac address supported by this platform
> + */
> +#define ODP_MAC_ADDR_MAX_LENGTH        ETH_ALEN
> +
> +/**
> + * Get mac address of the interface
> + *
> + * @param id           ODP packet IO handle
> + * @param mac_addr     Storage for Mac address of the packet IO interface
> + *                     Storage provided by the caller should be equal
> + *                     to ODP_MAC_ADDR_MAX_LENGTH (filled by function)
> + * @return  0 on success or -1 on error
> +**/
> +int odp_pktio_get_mac_addr(odp_pktio_t id, unsigned char *mac_addr);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif
> diff --git a/platform/linux-dpdk/odp_init.c
> b/platform/linux-dpdk/odp_init.c
> index ecc2066..404e616 100644
> --- a/platform/linux-dpdk/odp_init.c
> +++ b/platform/linux-dpdk/odp_init.c
> @@ -91,6 +91,11 @@ int odp_init_global(void)
>                 return -1;
>         }
>
> +       if (odp_crypto_init_global()) {
> +               ODP_ERR("ODP crypto init failed.\n");
> +               return -1;
> +       }
> +
>         return 0;
>  }
>
> diff --git a/platform/linux-dpdk/odp_packet.c
> b/platform/linux-dpdk/odp_packet.c
> index 1cd190d..7b6b082 100644
> --- a/platform/linux-dpdk/odp_packet.c
> +++ b/platform/linux-dpdk/odp_packet.c
> @@ -74,6 +74,7 @@ static int odp_packet_set_offset_len(odp_packet_t pkt,
> size_t frame_offset,
>                 return -1;
>         }
>         mb->pkt.pkt_len = len;
> +       mb->pkt.data_len = len;
>
>         return 0;
>  }
> diff --git a/platform/linux-dpdk/odp_packet_io.c
> b/platform/linux-dpdk/odp_packet_io.c
> index 18635de..79394bb 100644
> --- a/platform/linux-dpdk/odp_packet_io.c
> +++ b/platform/linux-dpdk/odp_packet_io.c
> @@ -422,3 +422,15 @@ int pktin_deq_multi(queue_entry_t *qentry,
> odp_buffer_hdr_t *buf_hdr[], int num)
>
>         return nbr;
>  }
> +
> +int odp_pktio_get_mac_addr(odp_pktio_t id, unsigned char *mac_addr)
> +{
> +       pktio_entry_t *pktio_entry = get_entry(id);
> +       if (!pktio_entry) {
> +               ODP_ERR("Invalid odp_pktio_t value\n");
> +               return -1;
> +       }
> +       rte_eth_macaddr_get(pktio_entry->s.pkt_dpdk.portid,
> +                           (struct ether_addr *)mac_addr);
> +       return 0;
> +}
> --
> 1.9.1
>
>
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to