net/ice/base: init flag redirect table for parser
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_port_db.h
index e3870f9..740c186 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2014-2019 Broadcom
+ * Copyright(c) 2014-2021 Broadcom
  * All rights reserved.
  */
 
@@ -10,6 +10,7 @@
 
 #define BNXT_PORT_DB_MAX_INTF_LIST             256
 #define BNXT_PORT_DB_MAX_FUNC                  2048
+#define BNXT_ULP_FREE_PARIF_BASE               11
 
 enum bnxt_ulp_svif_type {
        BNXT_ULP_DRV_FUNC_SVIF = 0,
@@ -45,7 +46,11 @@ struct ulp_func_if_info {
        uint16_t                func_spif;
        uint16_t                func_parif;
        uint16_t                func_vnic;
+       uint8_t                 func_mac[RTE_ETHER_ADDR_LEN];
+       uint16_t                func_parent_vnic;
+       uint8_t                 func_parent_mac[RTE_ETHER_ADDR_LEN];
        uint16_t                phy_port_id;
+       uint16_t                ifindex;
 };
 
 /* Structure for the Port database resource information. */
@@ -218,4 +223,95 @@ ulp_port_db_phy_port_vport_get(struct bnxt_ulp_context *ulp_ctxt,
                               uint32_t phy_port,
                               uint16_t *out_port);
 
+/*
+ * Api to get the svif for a given physical port.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * phy_port [in] physical port index
+ * svif [out] the svif of the given physical index
+ *
+ * Returns 0 on success or negative number on failure.
+ */
+int32_t
+ulp_port_db_phy_port_svif_get(struct bnxt_ulp_context *ulp_ctxt,
+                             uint32_t phy_port,
+                             uint16_t *svif);
+
+/*
+ * Api to get the port type for a given ulp ifindex.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * ifindex [in] ulp ifindex
+ *
+ * Returns port type.
+ */
+enum bnxt_ulp_intf_type
+ulp_port_db_port_type_get(struct bnxt_ulp_context *ulp_ctxt,
+                         uint32_t ifindex);
+
+/*
+ * Api to get the ulp ifindex for a given function id.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * func_id [in].device func id
+ * ifindex [out] ulp ifindex
+ *
+ * Returns 0 on success or negative number on failure.
+ */
+int32_t
+ulp_port_db_dev_func_id_to_ulp_index(struct bnxt_ulp_context *ulp_ctxt,
+                                    uint32_t func_id, uint32_t *ifindex);
+
+/*
+ * Api to get the function id for a given port id.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * port_id [in] dpdk port id
+ * func_id [out] the function id of the given ifindex.
+ *
+ * Returns 0 on success or negative number on failure.
+ */
+int32_t
+ulp_port_db_port_func_id_get(struct bnxt_ulp_context *ulp_ctxt,
+                            uint16_t port_id, uint16_t *func_id);
+
+/*
+ * Api to get the parent mac address for a given port id.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * port_id [in] device port id
+ * mac_addr [out] mac address
+ *
+ * Returns 0 on success or negative number on failure.
+ */
+int32_t
+ulp_port_db_parent_mac_addr_get(struct bnxt_ulp_context *ulp_ctxt,
+                               uint32_t port_id, uint8_t **mac_addr);
+
+/*
+ * Api to get the mac address for a given port id.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * port_id [in] device port id
+ * mac_addr [out] mac address
+ *
+ * Returns 0 on success or negative number on failure.
+ */
+int32_t
+ulp_port_db_drv_mac_addr_get(struct bnxt_ulp_context *ulp_ctxt,
+                            uint32_t port_id, uint8_t **mac_addr);
+
+/*
+ * Api to get the parent vnic for a given port id.
+ *
+ * ulp_ctxt [in] Ptr to ulp context
+ * port_id [in] device port id
+ * vnic [out] parent vnic
+ *
+ * Returns 0 on success or negative number on failure.
+ */
+int32_t
+ulp_port_db_parent_vnic_get(struct bnxt_ulp_context *ulp_ctxt,
+                           uint32_t port_id, uint8_t **vnic);
+
 #endif /* _ULP_PORT_DB_H_ */