IB/rxe: support for 802.1q VLAN on the listener

Set the vlan flag and vlan_id field in the wc for rdma_listen()
to work over VLAN. This is required by ib_init_ah_attr_from_wc()
which is called by the CM REQ handler.

Signed-off-by: Vijay Immanuel <vijayi@attalasystems.com>
Reviewed-by: Yonatan Cohen <yonatanc@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
Vijay Immanuel 2018-06-12 18:12:05 -07:00 committed by Jason Gunthorpe
parent 6a965ee57d
commit 92cf36eec2

View File

@ -884,6 +884,11 @@ static enum resp_states do_complete(struct rxe_qp *qp,
else else
wc->network_hdr_type = RDMA_NETWORK_IPV6; wc->network_hdr_type = RDMA_NETWORK_IPV6;
if (is_vlan_dev(skb->dev)) {
wc->wc_flags |= IB_WC_WITH_VLAN;
wc->vlan_id = vlan_dev_vlan_id(skb->dev);
}
if (pkt->mask & RXE_IMMDT_MASK) { if (pkt->mask & RXE_IMMDT_MASK) {
wc->wc_flags |= IB_WC_WITH_IMM; wc->wc_flags |= IB_WC_WITH_IMM;
wc->ex.imm_data = immdt_imm(pkt); wc->ex.imm_data = immdt_imm(pkt);