Commit ebaaee25 authored by Noa Osherovich's avatar Noa Osherovich Committed by Doug Ledford

IB/core: Expose vlan offloads capabilities

Expose raw packet capabilities in the core layer to enable a device
to report it.
Two existing capabilities, scatter FCS and IP CSUM were added to this
field for a better user experience by exposing the raw packet caps
from one location.
This field will serve also for future capabilities for raw packet QP.

A new capability was introduced - cvlan stripping, which is the
device's ability to remove cvlan tag from an incoming packet and
report it in the matching work completion.
Signed-off-by: default avatarNoa Osherovich <noaos@mellanox.com>
Reviewed-by: default avatarMaor Gottlieb <maorg@mellanox.com>
Reviewed-by: default avatarYishai Hadas <yishaih@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 23a6964e
...@@ -207,6 +207,7 @@ enum ib_device_cap_flags { ...@@ -207,6 +207,7 @@ enum ib_device_cap_flags {
IB_DEVICE_MEM_WINDOW_TYPE_2A = (1 << 23), IB_DEVICE_MEM_WINDOW_TYPE_2A = (1 << 23),
IB_DEVICE_MEM_WINDOW_TYPE_2B = (1 << 24), IB_DEVICE_MEM_WINDOW_TYPE_2B = (1 << 24),
IB_DEVICE_RC_IP_CSUM = (1 << 25), IB_DEVICE_RC_IP_CSUM = (1 << 25),
/* Deprecated. Please use IB_RAW_PACKET_CAP_IP_CSUM. */
IB_DEVICE_RAW_IP_CSUM = (1 << 26), IB_DEVICE_RAW_IP_CSUM = (1 << 26),
/* /*
* Devices should set IB_DEVICE_CROSS_CHANNEL if they * Devices should set IB_DEVICE_CROSS_CHANNEL if they
...@@ -220,6 +221,7 @@ enum ib_device_cap_flags { ...@@ -220,6 +221,7 @@ enum ib_device_cap_flags {
IB_DEVICE_ON_DEMAND_PAGING = (1ULL << 31), IB_DEVICE_ON_DEMAND_PAGING = (1ULL << 31),
IB_DEVICE_SG_GAPS_REG = (1ULL << 32), IB_DEVICE_SG_GAPS_REG = (1ULL << 32),
IB_DEVICE_VIRTUAL_FUNCTION = (1ULL << 33), IB_DEVICE_VIRTUAL_FUNCTION = (1ULL << 33),
/* Deprecated. Please use IB_RAW_PACKET_CAP_SCATTER_FCS. */
IB_DEVICE_RAW_SCATTER_FCS = (1ULL << 34), IB_DEVICE_RAW_SCATTER_FCS = (1ULL << 34),
}; };
...@@ -330,6 +332,7 @@ struct ib_device_attr { ...@@ -330,6 +332,7 @@ struct ib_device_attr {
uint64_t hca_core_clock; /* in KHZ */ uint64_t hca_core_clock; /* in KHZ */
struct ib_rss_caps rss_caps; struct ib_rss_caps rss_caps;
u32 max_wq_type_rq; u32 max_wq_type_rq;
u32 raw_packet_caps; /* Use ib_raw_packet_caps enum */
}; };
enum ib_mtu { enum ib_mtu {
...@@ -1456,6 +1459,18 @@ struct ib_srq { ...@@ -1456,6 +1459,18 @@ struct ib_srq {
} ext; } ext;
}; };
enum ib_raw_packet_caps {
/* Strip cvlan from incoming packet and report it in the matching work
* completion is supported.
*/
IB_RAW_PACKET_CAP_CVLAN_STRIPPING = (1 << 0),
/* Scatter FCS field of an incoming packet to host memory is supported.
*/
IB_RAW_PACKET_CAP_SCATTER_FCS = (1 << 1),
/* Checksum offloads are supported (for both send and receive). */
IB_RAW_PACKET_CAP_IP_CSUM = (1 << 2),
};
enum ib_wq_type { enum ib_wq_type {
IB_WQT_RQ IB_WQT_RQ
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment