Message ID | 1439550184-28383-2-git-send-email-maxim.uvarov@linaro.org |
---|---|
State | Superseded |
Headers | show |
Ping - we would like to merge this for 1.3 this week, any comments ? On 14 August 2015 at 07:02, Maxim Uvarov <maxim.uvarov@linaro.org> wrote: > Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> > --- > .../linux-generic/include/odp_packet_io_internal.h | 6 ++++ > platform/linux-generic/odp_packet_io.c | 34 > ++++++++++++++++++++++ > 2 files changed, 40 insertions(+) > > diff --git a/platform/linux-generic/include/odp_packet_io_internal.h > b/platform/linux-generic/include/odp_packet_io_internal.h > index 5ae3718..f56d100 100644 > --- a/platform/linux-generic/include/odp_packet_io_internal.h > +++ b/platform/linux-generic/include/odp_packet_io_internal.h > @@ -50,6 +50,10 @@ struct pktio_entry { > pkt_sock_mmap_t pkt_sock_mmap; /**< using socket mmap > * API for IO */ > }; > + enum { > + STATE_START = 0, > + STATE_STOP > + } state; > classifier_t cls; /**< classifier linked with this > pktio*/ > char name[IF_NAMESIZE]; /**< name of pktio provided to > pktio_open() */ > @@ -72,6 +76,8 @@ typedef struct pktio_if_ops { > int (*open)(odp_pktio_t pktio, pktio_entry_t *pktio_entry, > const char *devname, odp_pool_t pool); > int (*close)(pktio_entry_t *pktio_entry); > + int (*start)(pktio_entry_t *pktio_entry); > + int (*stop)(pktio_entry_t *pktio_entry); > int (*recv)(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[], > unsigned len); > int (*send)(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[], > diff --git a/platform/linux-generic/odp_packet_io.c > b/platform/linux-generic/odp_packet_io.c > index 135e84f..532c264 100644 > --- a/platform/linux-generic/odp_packet_io.c > +++ b/platform/linux-generic/odp_packet_io.c > @@ -289,6 +289,40 @@ int odp_pktio_close(odp_pktio_t id) > return 0; > } > > +int odp_pktio_start(odp_pktio_t id) > +{ > + pktio_entry_t *entry; > + int res = 0; > + > + entry = get_pktio_entry(id); > + if (!entry) > + return -1; > + > + lock_entry(entry); > + if (entry->s.ops->start) > + res = entry->s.ops->start(entry); > + unlock_entry(entry); > + > + return res; > +} > + > +int odp_pktio_stop(odp_pktio_t id) > +{ > + pktio_entry_t *entry; > + int res = 0; > + > + entry = get_pktio_entry(id); > + if (!entry) > + return -1; > + > + lock_entry(entry); > + if (entry->s.ops->stop) > + res = entry->s.ops->stop(entry); > + unlock_entry(entry); > + > + return res; > +} > + > odp_pktio_t odp_pktio_lookup(const char *dev) > { > odp_pktio_t id = ODP_PKTIO_INVALID; > -- > 1.9.1 > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp >
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h index 5ae3718..f56d100 100644 --- a/platform/linux-generic/include/odp_packet_io_internal.h +++ b/platform/linux-generic/include/odp_packet_io_internal.h @@ -50,6 +50,10 @@ struct pktio_entry { pkt_sock_mmap_t pkt_sock_mmap; /**< using socket mmap * API for IO */ }; + enum { + STATE_START = 0, + STATE_STOP + } state; classifier_t cls; /**< classifier linked with this pktio*/ char name[IF_NAMESIZE]; /**< name of pktio provided to pktio_open() */ @@ -72,6 +76,8 @@ typedef struct pktio_if_ops { int (*open)(odp_pktio_t pktio, pktio_entry_t *pktio_entry, const char *devname, odp_pool_t pool); int (*close)(pktio_entry_t *pktio_entry); + int (*start)(pktio_entry_t *pktio_entry); + int (*stop)(pktio_entry_t *pktio_entry); int (*recv)(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[], unsigned len); int (*send)(pktio_entry_t *pktio_entry, odp_packet_t pkt_table[], diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index 135e84f..532c264 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -289,6 +289,40 @@ int odp_pktio_close(odp_pktio_t id) return 0; } +int odp_pktio_start(odp_pktio_t id) +{ + pktio_entry_t *entry; + int res = 0; + + entry = get_pktio_entry(id); + if (!entry) + return -1; + + lock_entry(entry); + if (entry->s.ops->start) + res = entry->s.ops->start(entry); + unlock_entry(entry); + + return res; +} + +int odp_pktio_stop(odp_pktio_t id) +{ + pktio_entry_t *entry; + int res = 0; + + entry = get_pktio_entry(id); + if (!entry) + return -1; + + lock_entry(entry); + if (entry->s.ops->stop) + res = entry->s.ops->stop(entry); + unlock_entry(entry); + + return res; +} + odp_pktio_t odp_pktio_lookup(const char *dev) { odp_pktio_t id = ODP_PKTIO_INVALID;
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> --- .../linux-generic/include/odp_packet_io_internal.h | 6 ++++ platform/linux-generic/odp_packet_io.c | 34 ++++++++++++++++++++++ 2 files changed, 40 insertions(+)