IB/rxe: support for 802.1q VLAN on the listener
authorVijay Immanuel <vijayi@attalasystems.com>
Wed, 13 Jun 2018 01:12:05 +0000 (18:12 -0700)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 18 Jun 2018 19:16:04 +0000 (13:16 -0600)
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>
drivers/infiniband/sw/rxe/rxe_resp.c

index 5b57de30dee4bfb2f0d60638c8461b0de98acdce..aa5833318372b001e107621745b903a60d739093 100644 (file)
@@ -884,6 +884,11 @@ static enum resp_states do_complete(struct rxe_qp *qp,
                        else
                                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) {
                                wc->wc_flags |= IB_WC_WITH_IMM;
                                wc->ex.imm_data = immdt_imm(pkt);