net/bnxt: support NAT for dest IP and port combination
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_mapper.h
index 9432462..4d6ba0f 100644 (file)
@@ -22,6 +22,7 @@ struct bnxt_ulp_mapper_glb_resource_entry {
        enum bnxt_ulp_resource_func     resource_func;
        uint32_t                        resource_type; /* TF_ enum type */
        uint64_t                        resource_hndl;
+       bool                            shared;
 };
 
 struct bnxt_ulp_mapper_data {
@@ -43,30 +44,35 @@ struct bnxt_ulp_mapper_parms {
        struct ulp_rte_act_prop                 *act_prop;
        struct ulp_rte_act_bitmap               *act_bitmap;
        struct ulp_rte_hdr_bitmap               *hdr_bitmap;
+       struct ulp_rte_hdr_bitmap               *enc_hdr_bitmap;
        struct ulp_rte_hdr_field                *hdr_field;
+       struct ulp_rte_hdr_field                *enc_field;
        struct ulp_rte_field_bitmap             *fld_bitmap;
-       uint32_t                                *comp_fld;
+       uint64_t                                *comp_fld;
        struct ulp_regfile                      *regfile;
-       struct tf                               *tfp;
        struct bnxt_ulp_context                 *ulp_ctx;
        uint32_t                                fid;
        enum bnxt_ulp_fdb_type                  flow_type;
        struct bnxt_ulp_mapper_data             *mapper_data;
        struct bnxt_ulp_device_params           *device_params;
-       uint32_t                                parent_fid;
+       uint32_t                                child_flow;
        uint32_t                                parent_flow;
        uint8_t                                 tun_idx;
        uint32_t                                app_priority;
        uint64_t                                shared_hndl;
        uint32_t                                flow_pattern_id;
        uint32_t                                act_pattern_id;
+       uint8_t                                 app_id;
+       uint16_t                                port_id;
 };
 
 struct bnxt_ulp_mapper_create_parms {
        uint32_t                        app_priority;
        struct ulp_rte_hdr_bitmap       *hdr_bitmap;
+       struct ulp_rte_hdr_bitmap       *enc_hdr_bitmap;
        struct ulp_rte_hdr_field        *hdr_field;
-       uint32_t                        *comp_fld;
+       struct ulp_rte_hdr_field        *enc_field;
+       uint64_t                        *comp_fld;
        struct ulp_rte_act_bitmap       *act;
        struct ulp_rte_act_prop         *act_prop;
        struct ulp_rte_field_bitmap     *fld_bitmap;
@@ -77,8 +83,8 @@ struct bnxt_ulp_mapper_create_parms {
        enum bnxt_ulp_fdb_type          flow_type;
 
        uint32_t                        flow_id;
-       /* if set then create it as a child flow with parent as parent_fid */
-       uint32_t                        parent_fid;
+       /* if set then create it as a child flow */
+       uint32_t                        child_flow;
        /* if set then create a parent flow */
        uint32_t                        parent_flow;
        uint8_t                         tun_idx;
@@ -87,7 +93,8 @@ struct bnxt_ulp_mapper_create_parms {
        /* support pattern based rejection */
        uint32_t                        flow_pattern_id;
        uint32_t                        act_pattern_id;
-
+       uint8_t                         app_id;
+       uint16_t                        port_id;
 };
 
 /* Function to initialize any dynamic mapper data. */