net/ark: set generator delay thread name
[dpdk.git] / drivers / net / ark / ark_global.h
index 41eb260..6f9b301 100644 (file)
@@ -1,34 +1,5 @@
-/*-
- * BSD LICENSE
- *
- * Copyright (c) 2015-2017 Atomic Rules LLC
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of copyright holder nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2015-2018 Atomic Rules LLC
  */
 
 #ifndef _ARK_GLOBAL_H_
@@ -38,7 +9,7 @@
 #include <assert.h>
 
 #include <rte_mbuf.h>
-#include <rte_ethdev_driver.h>
+#include <ethdev_driver.h>
 #include <rte_malloc.h>
 #include <rte_memcpy.h>
 #include <rte_string_fns.h>
                void     *v;       \
        } name
 
+
+/* Extension hooks for extraction and placement of user meta data
+ * during RX an TX operations. These functions are the bridge
+ * between the mbuf struct and the tuser fields on the AXIS
+ * interfaces in the FPGA
+ */
+/* RX hook populates mbuf fields from user defined *meta up to 20 bytes */
+typedef void (*rx_user_meta_hook_fn)(struct rte_mbuf *mbuf,
+                                    const uint32_t *meta,
+                                    void *ext_user_data);
+/* TX hook poplulate *meta, with up to 20 bytes.  meta_cnt
+ * returns the number of uint32_t words populated, 0 to 5
+ */
+typedef void (*tx_user_meta_hook_fn)(const struct rte_mbuf *mbuf,
+                                    uint32_t *meta, uint8_t *meta_cnt,
+                                    void *ext_user_data);
+
 struct ark_user_ext {
        void *(*dev_init)(struct rte_eth_dev *, void *abar, int port_id);
        void (*dev_uninit)(struct rte_eth_dev *, void *);
@@ -100,13 +88,17 @@ struct ark_user_ext {
        int (*stats_get)(struct rte_eth_dev *, struct rte_eth_stats *, void *);
        void (*stats_reset)(struct rte_eth_dev *, void *);
        void (*mac_addr_add)(struct rte_eth_dev *,
-                                                 struct ether_addr *,
+                                                 struct rte_ether_addr *,
                                                 uint32_t,
                                                 uint32_t,
                                                 void *);
        void (*mac_addr_remove)(struct rte_eth_dev *, uint32_t, void *);
-       void (*mac_addr_set)(struct rte_eth_dev *, struct ether_addr *, void *);
+       void (*mac_addr_set)(struct rte_eth_dev *, struct rte_ether_addr *,
+                       void *);
        int (*set_mtu)(struct rte_eth_dev *, uint16_t, void *);
+       /* user meta, hook functions  */
+       rx_user_meta_hook_fn rx_user_meta_hook;
+       tx_user_meta_hook_fn tx_user_meta_hook;
 };
 
 struct ark_adapter {