net/ice/base: init flag redirect table for parser
[dpdk.git] / drivers / net / mvpp2 / mrvl_ethdev.h
index da026e6..426cf33 100644 (file)
@@ -82,6 +82,8 @@
 /** Maximum length of a match string */
 #define MRVL_MATCH_LEN 16
 
+#define MRVL_BURST_SIZE 64
+
 /** PMD-specific definition of a flow rule handle. */
 struct mrvl_mtr;
 struct rte_flow {
@@ -92,6 +94,7 @@ struct rte_flow {
        struct pp2_cls_tbl_rule rule;
        struct pp2_cls_cos_desc cos;
        struct pp2_cls_tbl_action action;
+       uint8_t next_udf_id;
 };
 
 struct mrvl_mtr_profile {
@@ -158,6 +161,9 @@ struct mrvl_priv {
        uint8_t uc_mc_flushed;
        uint8_t isolated;
        uint8_t multiseg;
+       uint16_t max_mtu;
+       uint8_t flow_ctrl;
+       struct rte_eth_fc_conf fc_conf;
 
        struct pp2_ppio_params ppio_params;
        struct pp2_cls_qos_tbl_params qos_tbl_params;
@@ -177,6 +183,11 @@ struct mrvl_priv {
        LIST_HEAD(shaper_profiles, mrvl_tm_shaper_profile) shaper_profiles;
        LIST_HEAD(nodes, mrvl_tm_node) nodes;
        uint64_t rate_max;
+
+       uint8_t forward_bad_frames;
+       uint32_t fill_bpool_buffs;
+
+       uint8_t configured; /** indicates if device has been configured */
 };
 
 /** Flow operations forward declaration. */
@@ -195,4 +206,47 @@ extern int mrvl_logtype;
        rte_log(RTE_LOG_ ## level, mrvl_logtype, "%s(): " fmt "\n", \
                __func__, ##args)
 
+extern struct pp2_bpool *dummy_pool[PP2_NUM_PKT_PROC];
+
+/**
+ * Convert string to uint32_t with extra checks for result correctness.
+ *
+ * @param string String to convert.
+ * @param val Conversion result.
+ * @returns 0 in case of success, negative value otherwise.
+ */
+static int
+get_val_securely(const char *string, uint32_t *val)
+{
+       char *endptr;
+       size_t len = strlen(string);
+
+       if (len == 0)
+               return -1;
+
+       errno = 0;
+       *val = strtoul(string, &endptr, 0);
+       if (errno != 0 || RTE_PTR_DIFF(endptr, string) != len)
+               return -2;
+
+       return 0;
+}
+
+static int
+get_val_securely8(const char *string, uint32_t base, uint8_t *val)
+{
+       char *endptr;
+       size_t len = strlen(string);
+
+       if (len == 0)
+               return -1;
+
+       errno = 0;
+       *val = (uint8_t)strtoul(string, &endptr, base);
+       if (errno != 0 || RTE_PTR_DIFF(endptr, string) != len)
+               return -2;
+
+       return 0;
+}
+
 #endif /* _MRVL_ETHDEV_H_ */