[ofa-general] [PATCH 4/16] Add checksum offload support for ipoib
Or Gerlitz
ogerlitz at voltaire.com
Thu Jan 17 05:18:28 PST 2008
Eli Cohen wrote:
> --- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
> +++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
> @@ -231,6 +232,18 @@ static void ipoib_ib_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
> skb->dev = dev;
> /* XXX get correct PACKET_ type here */
> skb->pkt_type = PACKET_HOST;
> +
> + /* check rx csum */
> + if (test_bit(IPOIB_FLAG_CSUM, &priv->flags) && likely(wc->csum_ok)) {
First, since the device IB_DEVICE_IP_CSUM capability means that "devices
which publish this capability must support insertion of UDP and TCP
checksum on outgoing packets and can verify the validity of checksum for
incoming packets" the IPOIB_FLAG_CSUM bit is redundant, I suggest to
remove it. Second, the csum_ok bit is not well defined, etc as I
commented on patch #4
> @@ -394,6 +407,12 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
> return;
> }
>
> + if (priv->ca->flags & IB_DEVICE_IP_CSUM &&
> + skb->ip_summed == CHECKSUM_PARTIAL)
> + priv->tx_wr.send_flags |= IB_SEND_IP_CSUM;
> + else
> + priv->tx_wr.send_flags &= IB_SEND_IP_CSUM;
I think that the code would be somehow clearer if you use dev->features
and not priv->ca->flags
Or
More information about the general
mailing list