sctp: Get rid of an extra routing lookup when adding a transport.
We used to perform 2 routing lookups for a new transport: one just for path mtu detection, and one to actually route to destination and path mtu update when sending a packet. There is no point in doing both of them, especially since the first one just for path mtu doesn't take into account source address and sometimes gives the wrong route, causing path mtu updates anyway. We now do just the one call to do both route to destination and get path mtu updates. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
This commit is contained in:
		
					parent
					
						
							
								a803c94230
							
						
					
				
			
			
				commit
				
					
						8da645e101
					
				
			
		
					 1 changed files with 8 additions and 6 deletions
				
			
		|  | @ -680,13 +680,15 @@ struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc, | |||
| 	 */ | ||||
| 	peer->param_flags = asoc->param_flags; | ||||
| 
 | ||||
| 	sctp_transport_route(peer, NULL, sp); | ||||
| 
 | ||||
| 	/* Initialize the pmtu of the transport. */ | ||||
| 	if (peer->param_flags & SPP_PMTUD_ENABLE) | ||||
| 		sctp_transport_pmtu(peer); | ||||
| 	else if (asoc->pathmtu) | ||||
| 		peer->pathmtu = asoc->pathmtu; | ||||
| 	else | ||||
| 		peer->pathmtu = SCTP_DEFAULT_MAXSEGMENT; | ||||
| 	if (peer->param_flags & SPP_PMTUD_DISABLE) { | ||||
| 		if (asoc->pathmtu) | ||||
| 			peer->pathmtu = asoc->pathmtu; | ||||
| 		else | ||||
| 			peer->pathmtu = SCTP_DEFAULT_MAXSEGMENT; | ||||
| 	} | ||||
| 
 | ||||
| 	/* If this is the first transport addr on this association,
 | ||||
| 	 * initialize the association PMTU to the peer's PMTU. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vlad Yasevich
				Vlad Yasevich