On Thu, Jan 12, 2017 at 01:16:22PM -0700, Jason Gunthorpe wrote: > On Thu, Jan 12, 2017 at 09:35:08PM +0200, Leon Romanovsky wrote: > > > > > In datagram mode, the IB UD (Unreliable Datagram) transport is used > > > > so the MTU of the interface is equal to the IB L2 MTU minus the > > > > IPoIB encapsulation header. Any request to change the MTU value > > > > above the maximum range will change the MTU to the max allowed, but > > > > will not show any warning message. An ipoib_warn is issued in such > > > > cases, letting the user know that even though the value is legal, > > > > it can't be currently applied. > > How does RC mode work then? RC mode doesn't have limitation on MTU size and it allows messages larger than IB link-layer MTU. > > > Second, I have a different view from you on the issue. User configured > > some value, which is not correct for IPoIB. In ideal world (without legacy), > > we were supposed to return error to him with proper message, but in our > > case (legacy applications) we can't (we tried and it broke some legacy > > ifcongfig, if I remember well). So it leaves us with one available > > option is to warn user about improper value. > > This is a legitimate configuration though, the user could have a mixed > MTU fabric and rely on path MTU discovery, so sets the MTU to the > largest. > > AFAIK the way to handle such configurations is with a multicast route that > has a reduced mtu. Multicast traffic is sent in datagram mode hence the limit will imply. Maybe, I went too far by calling it error, but IMHO absence of indication to user of decreased MTU is not good either. > > Jason