{net, RDMA}/mlx5: Rename encap to reformat packet
authorMark Bloch <markb@mellanox.com>
Tue, 28 Aug 2018 11:18:46 +0000 (14:18 +0300)
committerLeon Romanovsky <leonro@mellanox.com>
Wed, 5 Sep 2018 05:10:59 +0000 (08:10 +0300)
Renames all encap mlx5_{core,ib} code to use the new naming of packet
reformat. This change doesn't introduce any function change and is
needed to properly reflect the operation being done by this action.
For example not only can we encapsulate a packet, but also decapsulate it.

Signed-off-by: Mark Bloch <markb@mellanox.com>
Reviewed-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
drivers/infiniband/hw/mlx5/devx.c
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
drivers/net/ethernet/mellanox/mlx5/core/diag/fs_tracepoint.h
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
include/linux/mlx5/fs.h
include/linux/mlx5/mlx5_ifc.h

index ac116d63e4661adf03662bdfb2cd598cc179ce3c..25dafa4ff6ca0b28a72977dbb77d744ed2ab98fb 100644 (file)
@@ -284,7 +284,7 @@ static bool devx_is_obj_create_cmd(const void *in)
        case MLX5_CMD_OP_CREATE_FLOW_TABLE:
        case MLX5_CMD_OP_CREATE_FLOW_GROUP:
        case MLX5_CMD_OP_ALLOC_FLOW_COUNTER:
-       case MLX5_CMD_OP_ALLOC_ENCAP_HEADER:
+       case MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT:
        case MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT:
        case MLX5_CMD_OP_CREATE_SCHEDULING_ELEMENT:
        case MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT:
@@ -627,9 +627,9 @@ static void devx_obj_build_destroy_cmd(void *in, void *out, void *din,
                MLX5_SET(general_obj_in_cmd_hdr, din, opcode,
                         MLX5_CMD_OP_DEALLOC_FLOW_COUNTER);
                break;
-       case MLX5_CMD_OP_ALLOC_ENCAP_HEADER:
+       case MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT:
                MLX5_SET(general_obj_in_cmd_hdr, din, opcode,
-                        MLX5_CMD_OP_DEALLOC_ENCAP_HEADER);
+                        MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT);
                break;
        case MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT:
                MLX5_SET(general_obj_in_cmd_hdr, din, opcode,
index 6f589b4d33d976f5180de1e3acb826e289e7457a..39750fca371d6bd46e0b7ca84b81c88c4c768ce1 100644 (file)
@@ -308,7 +308,7 @@ static int mlx5_internal_err_ret_value(struct mlx5_core_dev *dev, u16 op,
        case MLX5_CMD_OP_MODIFY_FLOW_TABLE:
        case MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY:
        case MLX5_CMD_OP_SET_FLOW_TABLE_ROOT:
-       case MLX5_CMD_OP_DEALLOC_ENCAP_HEADER:
+       case MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT:
        case MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT:
        case MLX5_CMD_OP_FPGA_DESTROY_QP:
        case MLX5_CMD_OP_DESTROY_GENERAL_OBJECT:
@@ -427,7 +427,7 @@ static int mlx5_internal_err_ret_value(struct mlx5_core_dev *dev, u16 op,
        case MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY:
        case MLX5_CMD_OP_ALLOC_FLOW_COUNTER:
        case MLX5_CMD_OP_QUERY_FLOW_COUNTER:
-       case MLX5_CMD_OP_ALLOC_ENCAP_HEADER:
+       case MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT:
        case MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT:
        case MLX5_CMD_OP_FPGA_CREATE_QP:
        case MLX5_CMD_OP_FPGA_MODIFY_QP:
@@ -601,8 +601,8 @@ const char *mlx5_command_str(int command)
        MLX5_COMMAND_STR_CASE(DEALLOC_FLOW_COUNTER);
        MLX5_COMMAND_STR_CASE(QUERY_FLOW_COUNTER);
        MLX5_COMMAND_STR_CASE(MODIFY_FLOW_TABLE);
-       MLX5_COMMAND_STR_CASE(ALLOC_ENCAP_HEADER);
-       MLX5_COMMAND_STR_CASE(DEALLOC_ENCAP_HEADER);
+       MLX5_COMMAND_STR_CASE(ALLOC_PACKET_REFORMAT_CONTEXT);
+       MLX5_COMMAND_STR_CASE(DEALLOC_PACKET_REFORMAT_CONTEXT);
        MLX5_COMMAND_STR_CASE(ALLOC_MODIFY_HEADER_CONTEXT);
        MLX5_COMMAND_STR_CASE(DEALLOC_MODIFY_HEADER_CONTEXT);
        MLX5_COMMAND_STR_CASE(FPGA_CREATE_QP);
index 0240aee9189eb90b551be15642344428f9485d83..e83dda441a818e01e7aa7a859e489bbe6e74d65a 100644 (file)
@@ -133,7 +133,7 @@ TRACE_EVENT(mlx5_fs_del_fg,
        {MLX5_FLOW_CONTEXT_ACTION_DROP,          "DROP"},\
        {MLX5_FLOW_CONTEXT_ACTION_FWD_DEST,      "FWD"},\
        {MLX5_FLOW_CONTEXT_ACTION_COUNT,         "CNT"},\
-       {MLX5_FLOW_CONTEXT_ACTION_ENCAP,         "ENCAP"},\
+       {MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT, "REFORMAT"},\
        {MLX5_FLOW_CONTEXT_ACTION_DECAP,         "DECAP"},\
        {MLX5_FLOW_CONTEXT_ACTION_MOD_HDR,       "MOD_HDR"},\
        {MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH,     "VLAN_PUSH"},\
index 240a6fe1587eaf7fe281145c25dd7aa233bed814..3df8f2b90908a3ec764845ba6ae33dc0dab6dbf5 100644 (file)
@@ -681,7 +681,7 @@ mlx5e_tc_add_nic_flow(struct mlx5e_priv *priv,
                .action = attr->action,
                .has_flow_tag = true,
                .flow_tag = attr->flow_tag,
-               .encap_id = 0,
+               .reformat_id = 0,
        };
        struct mlx5_fc *counter = NULL;
        struct mlx5_flow_handle *rule;
@@ -829,7 +829,7 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
        struct mlx5e_priv *out_priv;
        int err;
 
-       if (attr->action & MLX5_FLOW_CONTEXT_ACTION_ENCAP) {
+       if (attr->action & MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT) {
                out_dev = __dev_get_by_index(dev_net(priv->netdev),
                                             attr->parse_attr->mirred_ifindex);
                err = mlx5e_attach_encap(priv, &parse_attr->tun_info,
@@ -885,7 +885,7 @@ err_add_rule:
 err_mod_hdr:
        mlx5_eswitch_del_vlan_action(esw, attr);
 err_add_vlan:
-       if (attr->action & MLX5_FLOW_CONTEXT_ACTION_ENCAP)
+       if (attr->action & MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT)
                mlx5e_detach_encap(priv, flow);
 err_attach_encap:
        return rule;
@@ -906,7 +906,7 @@ static void mlx5e_tc_del_fdb_flow(struct mlx5e_priv *priv,
 
        mlx5_eswitch_del_vlan_action(esw, attr);
 
-       if (attr->action & MLX5_FLOW_CONTEXT_ACTION_ENCAP) {
+       if (attr->action & MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT) {
                mlx5e_detach_encap(priv, flow);
                kvfree(attr->parse_attr);
        }
@@ -923,9 +923,9 @@ void mlx5e_tc_encap_flows_add(struct mlx5e_priv *priv,
        struct mlx5e_tc_flow *flow;
        int err;
 
-       err = mlx5_encap_alloc(priv->mdev, e->tunnel_type,
-                              e->encap_size, e->encap_header,
-                              &e->encap_id);
+       err = mlx5_packet_reformat_alloc(priv->mdev, e->tunnel_type,
+                                        e->encap_size, e->encap_header,
+                                        &e->encap_id);
        if (err) {
                mlx5_core_warn(priv->mdev, "Failed to offload cached encapsulation header, %d\n",
                               err);
@@ -979,7 +979,7 @@ void mlx5e_tc_encap_flows_del(struct mlx5e_priv *priv,
 
        if (e->flags & MLX5_ENCAP_ENTRY_VALID) {
                e->flags &= ~MLX5_ENCAP_ENTRY_VALID;
-               mlx5_encap_dealloc(priv->mdev, e->encap_id);
+               mlx5_packet_reformat_dealloc(priv->mdev, e->encap_id);
        }
 }
 
@@ -1048,7 +1048,7 @@ static void mlx5e_detach_encap(struct mlx5e_priv *priv,
                mlx5e_rep_encap_entry_detach(netdev_priv(e->out_dev), e);
 
                if (e->flags & MLX5_ENCAP_ENTRY_VALID)
-                       mlx5_encap_dealloc(priv->mdev, e->encap_id);
+                       mlx5_packet_reformat_dealloc(priv->mdev, e->encap_id);
 
                hash_del_rcu(&e->encap_hlist);
                kfree(e->encap_header);
@@ -2323,7 +2323,7 @@ static int mlx5e_create_encap_header_ipv4(struct mlx5e_priv *priv,
                return -ENOMEM;
 
        switch (e->tunnel_type) {
-       case MLX5_HEADER_TYPE_VXLAN:
+       case MLX5_REFORMAT_TYPE_L2_TO_VXLAN:
                fl4.flowi4_proto = IPPROTO_UDP;
                fl4.fl4_dport = tun_key->tp_dst;
                break;
@@ -2367,7 +2367,7 @@ static int mlx5e_create_encap_header_ipv4(struct mlx5e_priv *priv,
        read_unlock_bh(&n->lock);
 
        switch (e->tunnel_type) {
-       case MLX5_HEADER_TYPE_VXLAN:
+       case MLX5_REFORMAT_TYPE_L2_TO_VXLAN:
                gen_vxlan_header_ipv4(out_dev, encap_header,
                                      ipv4_encap_size, e->h_dest, tos, ttl,
                                      fl4.daddr,
@@ -2387,8 +2387,9 @@ static int mlx5e_create_encap_header_ipv4(struct mlx5e_priv *priv,
                goto out;
        }
 
-       err = mlx5_encap_alloc(priv->mdev, e->tunnel_type,
-                              ipv4_encap_size, encap_header, &e->encap_id);
+       err = mlx5_packet_reformat_alloc(priv->mdev, e->tunnel_type,
+                                        ipv4_encap_size, encap_header,
+                                        &e->encap_id);
        if (err)
                goto destroy_neigh_entry;
 
@@ -2432,7 +2433,7 @@ static int mlx5e_create_encap_header_ipv6(struct mlx5e_priv *priv,
                return -ENOMEM;
 
        switch (e->tunnel_type) {
-       case MLX5_HEADER_TYPE_VXLAN:
+       case MLX5_REFORMAT_TYPE_L2_TO_VXLAN:
                fl6.flowi6_proto = IPPROTO_UDP;
                fl6.fl6_dport = tun_key->tp_dst;
                break;
@@ -2476,7 +2477,7 @@ static int mlx5e_create_encap_header_ipv6(struct mlx5e_priv *priv,
        read_unlock_bh(&n->lock);
 
        switch (e->tunnel_type) {
-       case MLX5_HEADER_TYPE_VXLAN:
+       case MLX5_REFORMAT_TYPE_L2_TO_VXLAN:
                gen_vxlan_header_ipv6(out_dev, encap_header,
                                      ipv6_encap_size, e->h_dest, tos, ttl,
                                      &fl6.daddr,
@@ -2497,8 +2498,9 @@ static int mlx5e_create_encap_header_ipv6(struct mlx5e_priv *priv,
                goto out;
        }
 
-       err = mlx5_encap_alloc(priv->mdev, e->tunnel_type,
-                              ipv6_encap_size, encap_header, &e->encap_id);
+       err = mlx5_packet_reformat_alloc(priv->mdev, e->tunnel_type,
+                                        ipv6_encap_size, encap_header,
+                                        &e->encap_id);
        if (err)
                goto destroy_neigh_entry;
 
@@ -2546,7 +2548,7 @@ vxlan_encap_offload_err:
 
        if (mlx5_vxlan_lookup_port(priv->mdev->vxlan, be16_to_cpu(key->tp_dst)) &&
            MLX5_CAP_ESW(priv->mdev, vxlan_encap_decap)) {
-               tunnel_type = MLX5_HEADER_TYPE_VXLAN;
+               tunnel_type = MLX5_REFORMAT_TYPE_L2_TO_VXLAN;
        } else {
                netdev_warn(priv->netdev,
                            "%d isn't an offloaded vxlan udp dport\n", be16_to_cpu(key->tp_dst));
@@ -2721,7 +2723,7 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv, struct tcf_exts *exts,
                                parse_attr->mirred_ifindex = out_dev->ifindex;
                                parse_attr->tun_info = *info;
                                attr->parse_attr = parse_attr;
-                               action |= MLX5_FLOW_CONTEXT_ACTION_ENCAP |
+                               action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT |
                                          MLX5_FLOW_CONTEXT_ACTION_FWD_DEST |
                                          MLX5_FLOW_CONTEXT_ACTION_COUNT;
                                /* attr->out_rep is resolved when we handle encap */
@@ -2867,7 +2869,8 @@ int mlx5e_configure_flower(struct mlx5e_priv *priv,
                flow->flags |= MLX5E_TC_FLOW_OFFLOADED;
 
        if (!(flow->flags & MLX5E_TC_FLOW_ESWITCH) ||
-           !(flow->esw_attr->action & MLX5_FLOW_CONTEXT_ACTION_ENCAP))
+           !(flow->esw_attr->action &
+             MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT))
                kvfree(parse_attr);
 
        err = rhashtable_insert_fast(tc_ht, &flow->node, tc_ht_params);
index 2b252cde5cc2db3cc6c90566e22d2187f328a99e..525b7e43b298fe76525314e90d0cc7dd00389347 100644 (file)
@@ -1746,7 +1746,7 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
        esw->enabled_vports = 0;
        esw->mode = SRIOV_NONE;
        esw->offloads.inline_mode = MLX5_INLINE_MODE_NONE;
-       if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev, encap) &&
+       if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev, reformat) &&
            MLX5_CAP_ESW_FLOWTABLE_FDB(dev, decap))
                esw->offloads.encap = DEVLINK_ESWITCH_ENCAP_MODE_BASIC;
        else
index ff21807a0c4bebfc460c4f821ac05571362f79d9..00ec6dd72080d7d39eff54baa95eb5f3da84e361 100644 (file)
@@ -127,8 +127,8 @@ mlx5_eswitch_add_offloaded_rule(struct mlx5_eswitch *esw,
        if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_MOD_HDR)
                flow_act.modify_id = attr->mod_hdr_id;
 
-       if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_ENCAP)
-               flow_act.encap_id = attr->encap_id;
+       if (flow_act.action & MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT)
+               flow_act.reformat_id = attr->encap_id;
 
        rule = mlx5_add_flow_rules(ft, spec, &flow_act, dest, i);
        if (IS_ERR(rule))
@@ -529,7 +529,7 @@ static int esw_create_offloads_fast_fdb_table(struct mlx5_eswitch *esw)
                esw_size >>= 1;
 
        if (esw->offloads.encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE)
-               flags |= (MLX5_FLOW_TABLE_TUNNEL_EN_ENCAP |
+               flags |= (MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT |
                          MLX5_FLOW_TABLE_TUNNEL_EN_DECAP);
 
        fdb = mlx5_create_auto_grouped_flow_table(root_ns, FDB_FAST_PATH,
@@ -1245,7 +1245,7 @@ int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink, u8 encap)
                return err;
 
        if (encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE &&
-           (!MLX5_CAP_ESW_FLOWTABLE_FDB(dev, encap) ||
+           (!MLX5_CAP_ESW_FLOWTABLE_FDB(dev, reformat) ||
             !MLX5_CAP_ESW_FLOWTABLE_FDB(dev, decap)))
                return -EOPNOTSUPP;
 
index 1698f325a21e9509e1de904ad24d660dd557a1f1..4539b709db207a5541d32f572bc98e415d044405 100644 (file)
@@ -152,7 +152,7 @@ static int mlx5_cmd_create_flow_table(struct mlx5_core_dev *dev,
                                      struct mlx5_flow_table *next_ft,
                                      unsigned int *table_id, u32 flags)
 {
-       int en_encap = !!(flags & MLX5_FLOW_TABLE_TUNNEL_EN_ENCAP);
+       int en_encap = !!(flags & MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT);
        int en_decap = !!(flags & MLX5_FLOW_TABLE_TUNNEL_EN_DECAP);
        u32 out[MLX5_ST_SZ_DW(create_flow_table_out)] = {0};
        u32 in[MLX5_ST_SZ_DW(create_flow_table_in)]   = {0};
@@ -171,7 +171,7 @@ static int mlx5_cmd_create_flow_table(struct mlx5_core_dev *dev,
 
        MLX5_SET(create_flow_table_in, in, flow_table_context.decap_en,
                 en_decap);
-       MLX5_SET(create_flow_table_in, in, flow_table_context.encap_en,
+       MLX5_SET(create_flow_table_in, in, flow_table_context.reformat_en,
                 en_encap);
 
        switch (op_mod) {
@@ -344,7 +344,8 @@ static int mlx5_cmd_set_fte(struct mlx5_core_dev *dev,
 
        MLX5_SET(flow_context, in_flow_context, flow_tag, fte->action.flow_tag);
        MLX5_SET(flow_context, in_flow_context, action, fte->action.action);
-       MLX5_SET(flow_context, in_flow_context, encap_id, fte->action.encap_id);
+       MLX5_SET(flow_context, in_flow_context, packet_reformat_id,
+                fte->action.reformat_id);
        MLX5_SET(flow_context, in_flow_context, modify_header_id,
                 fte->action.modify_id);
 
@@ -595,16 +596,16 @@ void mlx5_cmd_fc_bulk_get(struct mlx5_core_dev *dev,
        *bytes = MLX5_GET64(traffic_counter, stats, octets);
 }
 
-int mlx5_encap_alloc(struct mlx5_core_dev *dev,
-                    int header_type,
-                    size_t size,
-                    void *encap_header,
-                    u32 *encap_id)
+int mlx5_packet_reformat_alloc(struct mlx5_core_dev *dev,
+                              int reformat_type,
+                              size_t size,
+                              void *reformat_data,
+                              u32 *packet_reformat_id)
 {
        int max_encap_size = MLX5_CAP_ESW(dev, max_encap_header_size);
-       u32 out[MLX5_ST_SZ_DW(alloc_encap_header_out)];
-       void *encap_header_in;
-       void *header;
+       u32 out[MLX5_ST_SZ_DW(alloc_packet_reformat_context_out)];
+       void *packet_reformat_context_in;
+       void *reformat;
        int inlen;
        int err;
        u32 *in;
@@ -615,39 +616,47 @@ int mlx5_encap_alloc(struct mlx5_core_dev *dev,
                return -EINVAL;
        }
 
-       in = kzalloc(MLX5_ST_SZ_BYTES(alloc_encap_header_in) + size,
+       in = kzalloc(MLX5_ST_SZ_BYTES(alloc_packet_reformat_context_in) + size,
                     GFP_KERNEL);
        if (!in)
                return -ENOMEM;
 
-       encap_header_in = MLX5_ADDR_OF(alloc_encap_header_in, in, encap_header);
-       header = MLX5_ADDR_OF(encap_header_in, encap_header_in, encap_header);
-       inlen = header - (void *)in  + size;
+       packet_reformat_context_in = MLX5_ADDR_OF(alloc_packet_reformat_context_in,
+                                                 in, packet_reformat_context);
+       reformat = MLX5_ADDR_OF(packet_reformat_context_in,
+                               packet_reformat_context_in,
+                               reformat_data);
+       inlen = reformat - (void *)in  + size;
 
        memset(in, 0, inlen);
-       MLX5_SET(alloc_encap_header_in, in, opcode,
-                MLX5_CMD_OP_ALLOC_ENCAP_HEADER);
-       MLX5_SET(encap_header_in, encap_header_in, encap_header_size, size);
-       MLX5_SET(encap_header_in, encap_header_in, header_type, header_type);
-       memcpy(header, encap_header, size);
+       MLX5_SET(alloc_packet_reformat_context_in, in, opcode,
+                MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT);
+       MLX5_SET(packet_reformat_context_in, packet_reformat_context_in,
+                reformat_data_size, size);
+       MLX5_SET(packet_reformat_context_in, packet_reformat_context_in,
+                reformat_type, reformat_type);
+       memcpy(reformat, reformat_data, size);
 
        memset(out, 0, sizeof(out));
        err = mlx5_cmd_exec(dev, in, inlen, out, sizeof(out));
 
-       *encap_id = MLX5_GET(alloc_encap_header_out, out, encap_id);
+       *packet_reformat_id = MLX5_GET(alloc_packet_reformat_context_out,
+                                      out, packet_reformat_id);
        kfree(in);
        return err;
 }
 
-void mlx5_encap_dealloc(struct mlx5_core_dev *dev, u32 encap_id)
+void mlx5_packet_reformat_dealloc(struct mlx5_core_dev *dev,
+                                 u32 packet_reformat_id)
 {
-       u32 in[MLX5_ST_SZ_DW(dealloc_encap_header_in)];
-       u32 out[MLX5_ST_SZ_DW(dealloc_encap_header_out)];
+       u32 in[MLX5_ST_SZ_DW(dealloc_packet_reformat_context_in)];
+       u32 out[MLX5_ST_SZ_DW(dealloc_packet_reformat_context_out)];
 
        memset(in, 0, sizeof(in));
-       MLX5_SET(dealloc_encap_header_in, in, opcode,
-                MLX5_CMD_OP_DEALLOC_ENCAP_HEADER);
-       MLX5_SET(dealloc_encap_header_in, in, encap_id, encap_id);
+       MLX5_SET(dealloc_packet_reformat_context_in, in, opcode,
+                MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT);
+       MLX5_SET(dealloc_packet_reformat_context_in, in, packet_reformat_id,
+                packet_reformat_id);
 
        mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out));
 }
index b7e7eb3535c7676ace340d64c777e9c8a04ceeb2..d2b162cfe86bf343c954acf755c64b21fafac95b 100644 (file)
@@ -1407,7 +1407,7 @@ static bool check_conflicting_actions(u32 action1, u32 action2)
                return false;
 
        if (xored_actions & (MLX5_FLOW_CONTEXT_ACTION_DROP  |
-                            MLX5_FLOW_CONTEXT_ACTION_ENCAP |
+                            MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT |
                             MLX5_FLOW_CONTEXT_ACTION_DECAP |
                             MLX5_FLOW_CONTEXT_ACTION_MOD_HDR  |
                             MLX5_FLOW_CONTEXT_ACTION_VLAN_POP |
index 649d1bd83a1af9edd35b1b475ec54c2c5c4d1dbf..f3c8f51cc9c2ebbd5c088e49f0006f8821d5390f 100644 (file)
@@ -169,12 +169,13 @@ struct mlx5_core_dev *mlx5_get_next_phys_dev(struct mlx5_core_dev *dev);
 void mlx5_dev_list_lock(void);
 void mlx5_dev_list_unlock(void);
 int mlx5_dev_list_trylock(void);
-int mlx5_encap_alloc(struct mlx5_core_dev *dev,
-                    int header_type,
-                    size_t size,
-                    void *encap_header,
-                    u32 *encap_id);
-void mlx5_encap_dealloc(struct mlx5_core_dev *dev, u32 encap_id);
+int mlx5_packet_reformat_alloc(struct mlx5_core_dev *dev,
+                              int reformat_type,
+                              size_t size,
+                              void *reformat_data,
+                              u32 *packet_reformat_id);
+void mlx5_packet_reformat_dealloc(struct mlx5_core_dev *dev,
+                                 u32 packet_reformat_id);
 
 bool mlx5_lag_intf_add(struct mlx5_interface *intf, struct mlx5_priv *priv);
 
index 0194e62ad66a38357b173fc091cb5a011d65ec6f..37d0c08d09664453d03fed5ef3d0c86b80788c8d 100644 (file)
@@ -45,7 +45,7 @@ enum {
 };
 
 enum {
-       MLX5_FLOW_TABLE_TUNNEL_EN_ENCAP = BIT(0),
+       MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT = BIT(0),
        MLX5_FLOW_TABLE_TUNNEL_EN_DECAP = BIT(1),
 };
 
@@ -160,7 +160,7 @@ struct mlx5_flow_act {
        u32 action;
        bool has_flow_tag;
        u32 flow_tag;
-       u32 encap_id;
+       u32 reformat_id;
        u32 modify_id;
        uintptr_t esp_id;
        struct mlx5_fs_vlan vlan[MLX5_FS_VLAN_DEPTH];
index bd725e0924e5641f9448071fe5f1482737fab6c2..c79eaae28e5935cc3d10fc6ed338b669d4c51555 100644 (file)
@@ -243,8 +243,8 @@ enum {
        MLX5_CMD_OP_DEALLOC_FLOW_COUNTER          = 0x93a,
        MLX5_CMD_OP_QUERY_FLOW_COUNTER            = 0x93b,
        MLX5_CMD_OP_MODIFY_FLOW_TABLE             = 0x93c,
-       MLX5_CMD_OP_ALLOC_ENCAP_HEADER            = 0x93d,
-       MLX5_CMD_OP_DEALLOC_ENCAP_HEADER          = 0x93e,
+       MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT = 0x93d,
+       MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT = 0x93e,
        MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT   = 0x940,
        MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT = 0x941,
        MLX5_CMD_OP_QUERY_MODIFY_HEADER_CONTEXT   = 0x942,
@@ -336,7 +336,7 @@ struct mlx5_ifc_flow_table_prop_layout_bits {
        u8         modify_root[0x1];
        u8         identified_miss_table_mode[0x1];
        u8         flow_table_modify[0x1];
-       u8         encap[0x1];
+       u8         reformat[0x1];
        u8         decap[0x1];
        u8         reserved_at_9[0x1];
        u8         pop_vlan[0x1];
@@ -599,7 +599,7 @@ struct mlx5_ifc_e_switch_cap_bits {
        u8         vxlan_encap_decap[0x1];
        u8         nvgre_encap_decap[0x1];
        u8         reserved_at_22[0x9];
-       u8         log_max_encap_headers[0x5];
+       u8         log_max_packet_reformat_context[0x5];
        u8         reserved_2b[0x6];
        u8         max_encap_header_size[0xa];
 
@@ -2394,7 +2394,7 @@ enum {
        MLX5_FLOW_CONTEXT_ACTION_DROP      = 0x2,
        MLX5_FLOW_CONTEXT_ACTION_FWD_DEST  = 0x4,
        MLX5_FLOW_CONTEXT_ACTION_COUNT     = 0x8,
-       MLX5_FLOW_CONTEXT_ACTION_ENCAP     = 0x10,
+       MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT = 0x10,
        MLX5_FLOW_CONTEXT_ACTION_DECAP     = 0x20,
        MLX5_FLOW_CONTEXT_ACTION_MOD_HDR   = 0x40,
        MLX5_FLOW_CONTEXT_ACTION_VLAN_POP  = 0x80,
@@ -2427,7 +2427,7 @@ struct mlx5_ifc_flow_context_bits {
        u8         reserved_at_a0[0x8];
        u8         flow_counter_list_size[0x18];
 
-       u8         encap_id[0x20];
+       u8         packet_reformat_id[0x20];
 
        u8         modify_header_id[0x20];
 
@@ -4802,19 +4802,19 @@ struct mlx5_ifc_query_eq_in_bits {
        u8         reserved_at_60[0x20];
 };
 
-struct mlx5_ifc_encap_header_in_bits {
+struct mlx5_ifc_packet_reformat_context_in_bits {
        u8         reserved_at_0[0x5];
-       u8         header_type[0x3];
+       u8         reformat_type[0x3];
        u8         reserved_at_8[0xe];
-       u8         encap_header_size[0xa];
+       u8         reformat_data_size[0xa];
 
        u8         reserved_at_20[0x10];
-       u8         encap_header[2][0x8];
+       u8         reformat_data[2][0x8];
 
-       u8         more_encap_header[0][0x8];
+       u8         more_reformat_data[0][0x8];
 };
 
-struct mlx5_ifc_query_encap_header_out_bits {
+struct mlx5_ifc_query_packet_reformat_context_out_bits {
        u8         status[0x8];
        u8         reserved_at_8[0x18];
 
@@ -4822,38 +4822,38 @@ struct mlx5_ifc_query_encap_header_out_bits {
 
        u8         reserved_at_40[0xa0];
 
-       struct mlx5_ifc_encap_header_in_bits encap_header[0];
+       struct mlx5_ifc_packet_reformat_context_in_bits packet_reformat_context[0];
 };
 
-struct mlx5_ifc_query_encap_header_in_bits {
+struct mlx5_ifc_query_packet_reformat_context_in_bits {
        u8         opcode[0x10];
        u8         reserved_at_10[0x10];
 
        u8         reserved_at_20[0x10];
        u8         op_mod[0x10];
 
-       u8         encap_id[0x20];
+       u8         packet_reformat_id[0x20];
 
        u8         reserved_at_60[0xa0];
 };
 
-struct mlx5_ifc_alloc_encap_header_out_bits {
+struct mlx5_ifc_alloc_packet_reformat_context_out_bits {
        u8         status[0x8];
        u8         reserved_at_8[0x18];
 
        u8         syndrome[0x20];
 
-       u8         encap_id[0x20];
+       u8         packet_reformat_id[0x20];
 
        u8         reserved_at_60[0x20];
 };
 
 enum {
-       MLX5_HEADER_TYPE_VXLAN = 0x0,
-       MLX5_HEADER_TYPE_NVGRE = 0x1,
+       MLX5_REFORMAT_TYPE_L2_TO_VXLAN = 0x0,
+       MLX5_REFORMAT_TYPE_L2_TO_NVGRE = 0x1,
 };
 
-struct mlx5_ifc_alloc_encap_header_in_bits {
+struct mlx5_ifc_alloc_packet_reformat_context_in_bits {
        u8         opcode[0x10];
        u8         reserved_at_10[0x10];
 
@@ -4862,10 +4862,10 @@ struct mlx5_ifc_alloc_encap_header_in_bits {
 
        u8         reserved_at_40[0xa0];
 
-       struct mlx5_ifc_encap_header_in_bits encap_header;
+       struct mlx5_ifc_packet_reformat_context_in_bits packet_reformat_context;
 };
 
-struct mlx5_ifc_dealloc_encap_header_out_bits {
+struct mlx5_ifc_dealloc_packet_reformat_context_out_bits {
        u8         status[0x8];
        u8         reserved_at_8[0x18];
 
@@ -4874,14 +4874,14 @@ struct mlx5_ifc_dealloc_encap_header_out_bits {
        u8         reserved_at_40[0x40];
 };
 
-struct mlx5_ifc_dealloc_encap_header_in_bits {
+struct mlx5_ifc_dealloc_packet_reformat_context_in_bits {
        u8         opcode[0x10];
        u8         reserved_at_10[0x10];
 
        u8         reserved_20[0x10];
        u8         op_mod[0x10];
 
-       u8         encap_id[0x20];
+       u8         packet_reformat_id[0x20];
 
        u8         reserved_60[0x20];
 };
@@ -6983,7 +6983,7 @@ struct mlx5_ifc_create_flow_table_out_bits {
 };
 
 struct mlx5_ifc_flow_table_context_bits {
-       u8         encap_en[0x1];
+       u8         reformat_en[0x1];
        u8         decap_en[0x1];
        u8         reserved_at_2[0x2];
        u8         table_miss_action[0x4];