[openib-general] [PATCHv6 RFC] IPoIB CM Experimental support

Michael S. Tsirkin mst at mellanox.co.il
Wed Feb 7 10:57:45 PST 2007


> Quoting Roland Dreier <rdreier at cisco.com>:
> Subject: Re: [PATCHv6 RFC] IPoIB CM Experimental support
> 
>  > Well, randomness is a resource after all, and since we don't have the additional
>  > security provided by PSNs in IPoIB UD, it seemed we do not need it for
>  > IPoIB CM either. So maybe the right thing is just to remove the FIXME comment.
> 
> random32() doesn't use up any entropy. Random PSNs help avoid problems
> with stale connections, so I think we should do it.

Well, stale connections don't pose any real problems for IPoIB CM - worst case a
connnection is torn down and recreated.  But I don't have a strong opinion
anyway - that's why I put the FIXME there. So I'm OK with random32, too.

> I noticed some funny code in ipoib_cm_skb_reap():
> 
> 	__be32 mtu = cpu_to_be32(priv->mcast_mtu);
> 
> // htonl(__be32)??
> 			icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu));
> // no htonl() here -- is this correct?
> 			icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev);
> 
> what is the right thing?

Both are right I think.
These two functions seem to accept parameters in different format:

include/net/icmp.h:extern void  icmp_send(struct sk_buff *skb_in,  int type, int
					  code, __be32 info);


include/linux/icmpv6.h:extern void                icmpv6_send(struct sk_buff *skb,
include/linux/icmpv6.h-                                       int type, int code,
include/linux/icmpv6.h-                                       __u32 info,
include/linux/icmpv6.h-                                       struct net_device *dev);

BTW, I just looked at ip_gre.c and it has the same code.

-- 
MST




More information about the general mailing list