mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-01 00:58:39 +02:00 
			
		
		
		
	mptcp: infinite mapping receiving
This patch adds the infinite mapping receiving logic. When the infinite mapping is received, set the map_data_len of the subflow to 0. In subflow_check_data_avail(), only reset the subflow when the map_data_len of the subflow is non-zero. Suggested-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Geliang Tang <geliang.tang@suse.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									1e39e5a32a
								
							
						
					
					
						commit
						f8d4bcacff
					
				
					 1 changed files with 3 additions and 1 deletions
				
			
		|  | @ -1006,7 +1006,9 @@ static enum mapping_status get_mapping_status(struct sock *ssk, | |||
| 
 | ||||
| 	data_len = mpext->data_len; | ||||
| 	if (data_len == 0) { | ||||
| 		pr_debug("infinite mapping received"); | ||||
| 		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_INFINITEMAPRX); | ||||
| 		subflow->map_data_len = 0; | ||||
| 		return MAPPING_INVALID; | ||||
| 	} | ||||
| 
 | ||||
|  | @ -1220,7 +1222,7 @@ static bool subflow_check_data_avail(struct sock *ssk) | |||
| 			return true; | ||||
| 		} | ||||
| 
 | ||||
| 		if (subflow->mp_join || subflow->fully_established) { | ||||
| 		if ((subflow->mp_join || subflow->fully_established) && subflow->map_data_len) { | ||||
| 			/* fatal protocol error, close the socket.
 | ||||
| 			 * subflow_error_report() will introduce the appropriate barriers | ||||
| 			 */ | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Geliang Tang
						Geliang Tang