diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2014-03-12 11:00:41 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-03-12 20:57:16 +0100 |
commit | 5ea8bbfc49291b7e23161fe4de0bf3e4a4e34b18 (patch) | |
tree | 1bf5496c736a0d70d137a05cee9e0adc32cfcb12 /mm/internal.h | |
parent | mlx4: Add ref counting to port MAC table for RoCE (diff) | |
download | linux-5ea8bbfc49291b7e23161fe4de0bf3e4a4e34b18.tar.xz linux-5ea8bbfc49291b7e23161fe4de0bf3e4a4e34b18.zip |
mlx4: Implement IP based gids support for RoCE/SRIOV
Since there is no connection between the MAC/VLAN and the GID
when using IP-based addressing, the proxy QP1 (running on the
slave) must pass the source-mac, destination-mac, and vlan_id
information separately from the GID. Additionally, the Host
must pass the remote source-mac and vlan_id back to the slave,
This is achieved as follows:
Outgoing MADs:
1. Source MAC: obtained from the CQ completion structure
(struct ib_wc, smac field).
2. Destination MAC: obtained from the tunnel header
3. vlan_id: obtained from the tunnel header.
Incoming MADs
1. The source (i.e., remote) MAC and vlan_id are passed in
the tunnel header to the proxy QP1.
VST mode support:
For outgoing MADs, the vlan_id obtained from the header is
discarded, and the vlan_id specified by the Hypervisor is used
instead.
For incoming MADs, the incoming vlan_id (in the wc) is discarded, and the
"invalid" vlan (0xffff) is substituted when forwarding to the slave.
Signed-off-by: Moni Shoua <monis@mellanox.co.il>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'mm/internal.h')
0 files changed, 0 insertions, 0 deletions