@@ -375,4 +375,104 @@ int odp_pktio_promisc_disable(odp_pktio_t id);
int odp_pktio_promisc(odp_pktio_t id);
@endcode
+@section apidefworkers API Definitions - Workers
+
+@subsection odp_pktio_worker_open odp_pktio_worker_open
+
+@code
+/*
+ * Open an ODP packet IO worker instance.
+ *
+ * @param iface Packet IO interface name.
+ *
+ * @return ODP packet IO worker handle or ODP_PKTIO_WORKER_INVALID on error.
+ */
+odp_pktio_worker_t odp_pktio_worker_open(const char *iface);
+@endcode
+
+Open a handle to be used when direct access to a pktio instance is required
+from a worker thread. The interface must have already been opened using
+@c odp_pktio_open.
+
+@subsection odp_pktio_worker_close odp_pktio_worker_close
+
+@code
+/*
+ * Close an ODP packet IO worker instance.
+ *
+ * @param id ODP packet IO worker handle.
+ *
+ * @return 0 on success, -1 on failure.
+ */
+int odp_pktio_worker_close(odp_pktio_worker_t id);
+@endcode
+
+@subsection odp_pktio_worker_recv odp_pktio_worker_recv
+
+@code
+/*
+ * Receive packets directly from the packet IO device.
+ *
+ * @param id ODP packet IO worker handle.
+ * @param[out] pkt_table[] Storage for received packets.
+ * @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_worker_recv(odp_pktio_worker_t id, odp_packet_t pkt_table[],
+ unsigned len);
+@endcode
+
+Receive up to len packets directly from the pktio device and store them in
+pkt_table. This call will return only as many packets as are immediately
+available from the interface.
+
+When accessing the same interface from multiple cores, packet order is not
+maintained.
+
+This routine may only be used on pktio interfaces that have no CoS rules
+configured (and the default CoS is ODP_COS_INVALID).
+
+@subsection odp_pktio_worker_send odp_pktio_worker_send
+
+@code
+/*
+ * Send packets directly via the pktio handle.
+ *
+ * @param id ODP packet IO worker 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_worker_send(odp_pktio_worker_t id, odp_packet_t pkt_table[],
+ unsigned len);
+@endcode
+
+Send packets directly via the pktio handle. The return value indicates the
+number of packets that the implementation was able to immediately accept for
+transmission. On function return those packets have been queued for
+transmission but the actual transmission may not yet have occurred. During the
+call ownership of the packets is transferred from the application to the
+implementation, making it the responsibility of the implementation to free the
+packets.
+
+@subsection odp_packet_outq odp_packet_outq
+
+@code
+/*
+ * Get the output queue for a packet.
+ *
+ * @param pkt ODP packet buffer handle.
+ *
+ * @return output queue or ODP_QUEUE_INVALID on error.
+ */
+odp_queue_t odp_packet_outq(odp_packet_t pkt);
+@endcode
+
+This routine returns the output queue for a packet. This is a shorthand
+equivalent of calling odp_packet_get_input() followed by odp_pktio_outq_getdef()
+to determine the output queue based on the interface the packet was received on.
+
*/
Signed-off-by: Anders Roxell <anders.roxell@linaro.org> --- packet_io.dox | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+)