Re: [PATCH] IB/ipoib: CSUM support in connected mode

Yuval Shaia
2015-11-18T10:46:08Z

On Thu, Jul 30, 2015 at 03:58:13PM +0200, Yann Droneaud wrote:
> Hi,
>
> Le jeudi 30 juillet 2015 à 04:46 -0700, Yuval Shaia a écrit :
> > This enhancement suggest the usage of IB CRC instead of CSUM in IPoIB
> > CM. IPoIB CM uses RC (Reliable Connection) which guarantees the
> > corruption free delivery of the packet.
> >
> > InfiniBand uses 32b CRC which provides stronger data integrity
> > protection compare to 16b IP Checksum.
>
> InfiniBand 32b CRC <=> Ethernet 32b CRC, it's link layer, layer 2.
>
> IPv4 checksum is at another level, it's internet layer, layer 3.
>
> > So, there is no added value that IP/TCP Checksum provides in the IB
> > world.
> >
>
> Sure, IPv4 checksum is a thing of the past: checksum was dropped from
> IP header in IPv6: it assumes the lower layer, such as Ethernet,
> provides the required integrety check.
Right, will change description to something like this:
InfiniBand 32b CRC offers strong data integrity protection compare CSUM.
>
> I think not checking the IPv4 checksum should be a choice, carefully
> thought, for inside a fabric, as I understand your proposal, packet
> with invalid checksum will be allowed to go in/out of the fabric.
If peer supports this feature do you see any reason why not?
>
> It sound like it's a departure from the behavior one can expect from an
> IPv4 network stack.
>
> > The proposal is to tell network stack that IPoIB-CM supports IP
> > Checksum offload. This enables the kernel to save the time of
> > checksum calculation of IPoIB CM packets. Network sends the IP packet
> > without adding the IP Checksum to the header. On the receive side,
> > IPoIB driver again tells the network stack that IP Checksum is good
> > for the incoming packets and network stack avoids the IP Checksum
> > calculations.
> >
> > During connection establishment the driver determine if peer supports
> > IB CRC as checksum. This is done so driver will be able to calculate
> > checksum before transmiting the packet in case the peer does not
> > support this feature.
> >
>
> Two questions:
>
> - What will see tool such as wireshark/tcpdump when sniffing checksum
> -less IPv4 packets sent/received on IPoIB interface ?
Never checked it but i assume 0 or what ever the kernel put there when
driver reports NETIF_F_IP_CSUM.
I can check and zero if needed but any reason to believe it is needed?
>
> - What might happen if such checksum-less IPv4 packet is later routed to a different IPv4 network ?
Same as my question above, if peer supports this feature do you see
anything wrong?
>
> > With this enhancement throughput is increased by 60%.
> >
>
> > Signed-off-by: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
>
> Regards.
>
> --
> Yann Droneaud
> OPTEYA
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html