mbox series

[v2,mptcp-next,0/3] remove id 0 address

Message ID cover.1614068181.git.geliangtang@gmail.com
Headers show
Series remove id 0 address | expand

Message

Geliang Tang Feb. 23, 2021, 8:26 a.m. UTC
The RM_ADDR selftests will fail when the removing address id is 0:

copyfd_io_poll: poll timed out (events: POLLIN 1, POLLOUT 0)
copyfd_io_poll: poll timed out (events: POLLIN 1, POLLOUT 0)
 client exit code 2, server 2

netns ns1-0-7z6ol9 socket stat for 10009:
State                      Recv-Q                       Send-Q                                             Local Address:Port                                             Peer Address:Port                      Process                      

netns ns2-0-7z6ol9 socket stat for 10009:
State                       Recv-Q                   Send-Q                                      Local Address:Port                                        Peer Address:Port                    Process                                       
TIME-WAIT                   0                        0                                                10.0.2.2:33225                                           10.0.2.1:10009                    timer:(timewait,26sec,0)

TIME-WAIT                   0                        0                                                10.0.4.2:44309                                           10.0.4.1:10009                    timer:(timewait,26sec,0)

TIME-WAIT                   0                        0                                                10.0.3.2:53671                                           10.0.3.1:10009                    timer:(timewait,26sec,0)

10 flush addresses                      syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        add[ ok ] - echo  [ ok ]
                                        rm [ ok ] - sf    [ ok ]

This patchset fixed this bug.

v2:
 - drop __mptcp_wr_shutdown in v1.

apply: export/20210222T184014
       move to next addr and testcases
       move to next addr when timeout

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/140

Geliang Tang (3):
  mptcp: unify RM_ADDR and RM_SUBFLOW receiving
  mptcp: skip closing the initial subsocket
  DO-NOT-MERGE: mptcp: remove id 0 test

 net/mptcp/pm_netlink.c                        | 94 +++++++++----------
 .../testing/selftests/net/mptcp/mptcp_join.sh |  8 +-
 2 files changed, 47 insertions(+), 55 deletions(-)

Comments

Mat Martineau Feb. 27, 2021, 1:32 a.m. UTC | #1
On Tue, 23 Feb 2021, Geliang Tang wrote:

> The RM_ADDR selftests will fail when the removing address id is 0:
>
> copyfd_io_poll: poll timed out (events: POLLIN 1, POLLOUT 0)
> copyfd_io_poll: poll timed out (events: POLLIN 1, POLLOUT 0)
> client exit code 2, server 2
>
> netns ns1-0-7z6ol9 socket stat for 10009:
> State                      Recv-Q                       Send-Q                                             Local Address:Port                                             Peer Address:Port                      Process
>
> netns ns2-0-7z6ol9 socket stat for 10009:
> State                       Recv-Q                   Send-Q                                      Local Address:Port                                        Peer Address:Port                    Process
> TIME-WAIT                   0                        0                                                10.0.2.2:33225                                           10.0.2.1:10009                    timer:(timewait,26sec,0)
>
> TIME-WAIT                   0                        0                                                10.0.4.2:44309                                           10.0.4.1:10009                    timer:(timewait,26sec,0)
>
> TIME-WAIT                   0                        0                                                10.0.3.2:53671                                           10.0.3.1:10009                    timer:(timewait,26sec,0)
>
> 10 flush addresses                      syn[ ok ] - synack[ ok ] - ack[ ok ]
>                                        add[ ok ] - echo  [ ok ]
>                                        rm [ ok ] - sf    [ ok ]
>
> This patchset fixed this bug.
>
> v2:
> - drop __mptcp_wr_shutdown in v1.
>
> apply: export/20210222T184014
>       move to next addr and testcases
>       move to next addr when timeout
>
> Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/140
>
> Geliang Tang (3):
>  mptcp: unify RM_ADDR and RM_SUBFLOW receiving
>  mptcp: skip closing the initial subsocket
>  DO-NOT-MERGE: mptcp: remove id 0 test
>
> net/mptcp/pm_netlink.c                        | 94 +++++++++----------
> .../testing/selftests/net/mptcp/mptcp_join.sh |  8 +-
> 2 files changed, 47 insertions(+), 55 deletions(-)
>
> -- 
> 2.29.2

Hi Geliang -

I ran mp_join.sh and looked at the pcap files, but didn't see that the 
initial subflow was getting closed. I uploaded an example pcap at
https://github.com/multipath-tcp/mptcp_net-next/issues/140

Is the goal of this fix only to prevent the poll timeout? What behavior 
should we see in the pcap when RM_ADDR 0 is sent & received?

--
Mat Martineau
Intel