From: Jon Maloy <jon.ma...@ericsson.com> Date: Mon, 14 Aug 2017 18:28:49 +0200
> In the function msg_reverse(), we reverse the header while trying to > reuse the original buffer whenever possible. Those rejected/returned > messages are always transmitted as unicast, but the msg_non_seq field > is not explicitly set to zero as it should be. > > We have seen cases where multicast senders set the message type to > "NOT dest_droppable", meaning that a multicast message shorter than > one MTU will be returned, e.g., during receive buffer overflow, by > reusing the original buffer. This has the effect that even the > 'msg_non_seq' field is inadvertently inherited by the rejected message, > although it is now sent as a unicast message. This again leads the > receiving unicast link endpoint to steer the packet toward the broadcast > link receive function, where it is dropped. The affected unicast link is > thereafter (after 100 failed retransmissions) declared 'stale' and > reset. > > We fix this by unconditionally setting the 'msg_non_seq' flag to zero > for all rejected/returned messages. > > Reported-by: Canh Duc Luu <canh.d....@dektech.com.au> > Signed-off-by: Jon Maloy <jon.ma...@ericsson.com> Also applied, thanks again.