瀏覽代碼

sctp: update the route for non-active transports after addresses are added

Update the route and saddr entries for the non-active transports as some
of the added addresses can be used as better source addresses, or may
be there is a better route.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Wei Yongjun 16 年之前
父節點
當前提交
3cd9749c0b
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      net/sctp/sm_make_chunk.c

+ 8 - 0
net/sctp/sm_make_chunk.c

@@ -3134,6 +3134,14 @@ static void sctp_asconf_param_success(struct sctp_association *asoc,
 				saddr->state = SCTP_ADDR_SRC;
 				saddr->state = SCTP_ADDR_SRC;
 		}
 		}
 		local_bh_enable();
 		local_bh_enable();
+		list_for_each_entry(transport, &asoc->peer.transport_addr_list,
+				transports) {
+			if (transport->state == SCTP_ACTIVE)
+				continue;
+			dst_release(transport->dst);
+			sctp_transport_route(transport, NULL,
+					     sctp_sk(asoc->base.sk));
+		}
 		break;
 		break;
 	case SCTP_PARAM_DEL_IP:
 	case SCTP_PARAM_DEL_IP:
 		local_bh_disable();
 		local_bh_disable();