Signed-off-by: Nicolas Morey-Chaisemartin <[email protected]>
---
platform/linux-generic/include/odp_packet_io_internal.h | 8 ++++++--
platform/linux-generic/pktio/loop.c | 16 ++++++++--------
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h
b/platform/linux-generic/include/odp_packet_io_internal.h
index ea09ab8..e66b868 100644
--- a/platform/linux-generic/include/odp_packet_io_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_internal.h
@@ -31,6 +31,11 @@ extern "C" {
/* Forward declaration */
struct pktio_if_ops;
+typedef struct {
+ odp_queue_t loopq; /**< loopback queue for "loop" device */
+ odp_bool_t promisc; /**< promiscuous mode state */
+} pkt_loop_t;
+
struct pktio_entry {
const struct pktio_if_ops *ops; /**< Implementation specific methods */
odp_spinlock_t lock; /**< entry spinlock */
@@ -39,13 +44,12 @@ struct pktio_entry {
odp_pktio_t handle; /**< pktio handle */
odp_queue_t inq_default; /**< default input queue, if set */
odp_queue_t outq_default; /**< default out queue */
- odp_queue_t loopq; /**< loopback queue for "loop" device */
+ pkt_loop_t pkt_loop; /**< Using loopback for IO */
pkt_sock_t pkt_sock; /**< using socket API for IO */
pkt_sock_mmap_t pkt_sock_mmap; /**< using socket mmap API for IO */
classifier_t cls; /**< classifier linked with this pktio*/
char name[IF_NAMESIZE]; /**< name of pktio provided to
pktio_open() */
- odp_bool_t promisc; /**< promiscuous mode state */
};
typedef union {
diff --git a/platform/linux-generic/pktio/loop.c
b/platform/linux-generic/pktio/loop.c
index a9bbb01..86201ee 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -34,10 +34,10 @@ static int loopback_init(odp_pktio_t id, pktio_entry_t
*pktio_entry,
snprintf(loopq_name, sizeof(loopq_name), "%" PRIu64 "-pktio_loopq",
odp_pktio_to_u64(id));
- pktio_entry->s.loopq = odp_queue_create(loopq_name,
- ODP_QUEUE_TYPE_POLL, NULL);
+ pktio_entry->s.pkt_loop.loopq =
+ odp_queue_create(loopq_name, ODP_QUEUE_TYPE_POLL, NULL);
- if (pktio_entry->s.loopq == ODP_QUEUE_INVALID)
+ if (pktio_entry->s.pkt_loop.loopq == ODP_QUEUE_INVALID)
return -1;
return 0;
@@ -45,7 +45,7 @@ static int loopback_init(odp_pktio_t id, pktio_entry_t
*pktio_entry,
static int loopback_close(pktio_entry_t *pktio_entry)
{
- return odp_queue_destroy(pktio_entry->s.loopq);
+ return odp_queue_destroy(pktio_entry->s.pkt_loop.loopq);
}
static int loopback_recv_pkt(pktio_entry_t *pktio_entry, odp_packet_t pkts[],
@@ -55,7 +55,7 @@ static int loopback_recv_pkt(pktio_entry_t *pktio_entry,
odp_packet_t pkts[],
odp_buffer_hdr_t *hdr_tbl[QUEUE_MULTI_MAX];
queue_entry_t *qentry;
- qentry = queue_to_qentry(pktio_entry->s.loopq);
+ qentry = queue_to_qentry(pktio_entry->s.pkt_loop.loopq);
nbr = queue_deq_multi(qentry, hdr_tbl, len);
for (i = 0; i < nbr; ++i) {
@@ -76,7 +76,7 @@ static int loopback_send_pkt(pktio_entry_t *pktio_entry,
odp_packet_t pkt_tbl[],
for (i = 0; i < len; ++i)
hdr_tbl[i] = odp_buf_to_hdr(_odp_packet_to_buffer(pkt_tbl[i]));
- qentry = queue_to_qentry(pktio_entry->s.loopq);
+ qentry = queue_to_qentry(pktio_entry->s.pkt_loop.loopq);
return queue_enq_multi(qentry, hdr_tbl, len);
}
@@ -95,13 +95,13 @@ static int loopback_mac_addr_get(pktio_entry_t *pktio_entry
ODP_UNUSED,
static int loopback_promisc_mode_set(pktio_entry_t *pktio_entry,
odp_bool_t enable)
{
- pktio_entry->s.promisc = enable;
+ pktio_entry->s.pkt_loop.promisc = enable;
return 0;
}
static int loopback_promisc_mode_get(pktio_entry_t *pktio_entry)
{
- return pktio_entry->s.promisc ? 1 : 0;
+ return pktio_entry->s.pkt_loop.promisc ? 1 : 0;
}
const pktio_if_ops_t loopback_pktio_ops = {
--
2.4.5.3.g4915f6f
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp