Message ID | 20220112221523.1829397-8-kishen.maloor@intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Commit | df2b5c816e230f2e4ed17897b76ef99234212719 |
Headers | show |
Series | mptcp: support userspace path management | expand |
Context | Check | Description |
---|---|---|
matttbe/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 20 lines checked |
matttbe/build | fail | Build error with: -Werror |
matttbe/KVM_Validation__normal | warning | Unstable: 2 failed test(s): packetdrill_add_addr selftest_mptcp_join |
Hello, On Wed, 2022-01-12 at 17:15 -0500, Kishen Maloor wrote: > This change updates mptcp_pm_nl_create_listen_socket() to create > listening sockets bound to IPv6 addresses (where IPv6 is supported). > > Signed-off-by: Kishen Maloor <kishen.maloor@intel.com> > --- > net/mptcp/pm_netlink.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c > index 4c1895dbc2a5..779ec9d375f0 100644 > --- a/net/mptcp/pm_netlink.c > +++ b/net/mptcp/pm_netlink.c > @@ -986,6 +986,7 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, > struct mptcp_pm_addr_entry *entry, > struct socket **lsk) > { > + int addrlen = sizeof(struct sockaddr_in); > struct sockaddr_storage addr; > struct mptcp_sock *msk; > struct socket *ssock; > @@ -1010,8 +1011,11 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, > } > > mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family); > - err = kernel_bind(ssock, (struct sockaddr *)&addr, > - sizeof(struct sockaddr_in)); > +#if IS_ENABLED(CONFIG_MPTCP_IPV6) > + if (entry->addr.family == AF_INET6) > + addrlen = sizeof(struct sockaddr_in6); > +#endif > + err = kernel_bind(ssock, (struct sockaddr *)&addr, addrlen); > if (err) { > pr_warn("kernel_bind error, err=%d", err); > goto out; This looks a bugfix for -net to me? Possibly worthy additional an additional mp_join self-test for the ipv6 case. Thanks! /P
On Fri, 14 Jan 2022, Paolo Abeni wrote: > Hello, > > On Wed, 2022-01-12 at 17:15 -0500, Kishen Maloor wrote: >> This change updates mptcp_pm_nl_create_listen_socket() to create >> listening sockets bound to IPv6 addresses (where IPv6 is supported). >> This tag - Fixes: 1729cf186d8a ("mptcp: create the listening socket for new port") would help with backporting to stable. >> Signed-off-by: Kishen Maloor <kishen.maloor@intel.com> >> --- >> net/mptcp/pm_netlink.c | 8 ++++++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c >> index 4c1895dbc2a5..779ec9d375f0 100644 >> --- a/net/mptcp/pm_netlink.c >> +++ b/net/mptcp/pm_netlink.c >> @@ -986,6 +986,7 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, >> struct mptcp_pm_addr_entry *entry, >> struct socket **lsk) >> { >> + int addrlen = sizeof(struct sockaddr_in); >> struct sockaddr_storage addr; >> struct mptcp_sock *msk; >> struct socket *ssock; >> @@ -1010,8 +1011,11 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, >> } >> >> mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family); >> - err = kernel_bind(ssock, (struct sockaddr *)&addr, >> - sizeof(struct sockaddr_in)); >> +#if IS_ENABLED(CONFIG_MPTCP_IPV6) >> + if (entry->addr.family == AF_INET6) >> + addrlen = sizeof(struct sockaddr_in6); >> +#endif >> + err = kernel_bind(ssock, (struct sockaddr *)&addr, addrlen); >> if (err) { >> pr_warn("kernel_bind error, err=%d", err); >> goto out; > > This looks a bugfix for -net to me? > > Possibly worthy additional an additional mp_join self-test for the ipv6 > case. > I agree, this would be good for -net. Kishen can you add the suggested selftest too and repost separately for mptcp-net? -- Mat Martineau Intel
On 1/14/22 2:09 PM, Mat Martineau wrote: > On Fri, 14 Jan 2022, Paolo Abeni wrote: > >> Hello, >> >> On Wed, 2022-01-12 at 17:15 -0500, Kishen Maloor wrote: >>> This change updates mptcp_pm_nl_create_listen_socket() to create >>> listening sockets bound to IPv6 addresses (where IPv6 is supported). >>> > > This tag - > > Fixes: 1729cf186d8a ("mptcp: create the listening socket for new port") > > would help with backporting to stable. > >>> Signed-off-by: Kishen Maloor <kishen.maloor@intel.com> >>> --- >>> net/mptcp/pm_netlink.c | 8 ++++++-- >>> 1 file changed, 6 insertions(+), 2 deletions(-) >>> >>> diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c >>> index 4c1895dbc2a5..779ec9d375f0 100644 >>> --- a/net/mptcp/pm_netlink.c >>> +++ b/net/mptcp/pm_netlink.c >>> @@ -986,6 +986,7 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, >>> struct mptcp_pm_addr_entry *entry, >>> struct socket **lsk) >>> { >>> + int addrlen = sizeof(struct sockaddr_in); >>> struct sockaddr_storage addr; >>> struct mptcp_sock *msk; >>> struct socket *ssock; >>> @@ -1010,8 +1011,11 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, >>> } >>> >>> mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family); >>> - err = kernel_bind(ssock, (struct sockaddr *)&addr, >>> - sizeof(struct sockaddr_in)); >>> +#if IS_ENABLED(CONFIG_MPTCP_IPV6) >>> + if (entry->addr.family == AF_INET6) >>> + addrlen = sizeof(struct sockaddr_in6); >>> +#endif >>> + err = kernel_bind(ssock, (struct sockaddr *)&addr, addrlen); >>> if (err) { >>> pr_warn("kernel_bind error, err=%d", err); >>> goto out; >> >> This looks a bugfix for -net to me? Sure, we can record a bug and the fact that this commit fixes it. >> >> Possibly worthy additional an additional mp_join self-test for the ipv6 >> case. >> > > I agree, this would be good for -net. Kishen can you add the suggested selftest too and repost separately for mptcp-net? > Actually, this path is currently exercised by self-tests in userspace_pm.sh through address advertisements from the namespace containing the MPTCP client, for which a listening socket is created to subsequently receive MPJs. > -- > Mat Martineau > Intel
On Tue, 18 Jan 2022, Kishen Maloor wrote: > On 1/14/22 2:09 PM, Mat Martineau wrote: >> On Fri, 14 Jan 2022, Paolo Abeni wrote: >> >>> Hello, >>> >>> On Wed, 2022-01-12 at 17:15 -0500, Kishen Maloor wrote: >>>> This change updates mptcp_pm_nl_create_listen_socket() to create >>>> listening sockets bound to IPv6 addresses (where IPv6 is supported). >>>> >> >> This tag - >> >> Fixes: 1729cf186d8a ("mptcp: create the listening socket for new port") >> >> would help with backporting to stable. >> >>>> Signed-off-by: Kishen Maloor <kishen.maloor@intel.com> >>>> --- >>>> net/mptcp/pm_netlink.c | 8 ++++++-- >>>> 1 file changed, 6 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c >>>> index 4c1895dbc2a5..779ec9d375f0 100644 >>>> --- a/net/mptcp/pm_netlink.c >>>> +++ b/net/mptcp/pm_netlink.c >>>> @@ -986,6 +986,7 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, >>>> struct mptcp_pm_addr_entry *entry, >>>> struct socket **lsk) >>>> { >>>> + int addrlen = sizeof(struct sockaddr_in); >>>> struct sockaddr_storage addr; >>>> struct mptcp_sock *msk; >>>> struct socket *ssock; >>>> @@ -1010,8 +1011,11 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, >>>> } >>>> >>>> mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family); >>>> - err = kernel_bind(ssock, (struct sockaddr *)&addr, >>>> - sizeof(struct sockaddr_in)); >>>> +#if IS_ENABLED(CONFIG_MPTCP_IPV6) >>>> + if (entry->addr.family == AF_INET6) >>>> + addrlen = sizeof(struct sockaddr_in6); >>>> +#endif >>>> + err = kernel_bind(ssock, (struct sockaddr *)&addr, addrlen); >>>> if (err) { >>>> pr_warn("kernel_bind error, err=%d", err); >>>> goto out; >>> >>> This looks a bugfix for -net to me? > > Sure, we can record a bug and the fact that this commit fixes it. > >>> >>> Possibly worthy additional an additional mp_join self-test for the ipv6 >>> case. >>> >> >> I agree, this would be good for -net. Kishen can you add the suggested selftest too and repost separately for mptcp-net? >> > > Actually, this path is currently exercised by self-tests in userspace_pm.sh through address > advertisements from the namespace containing the MPTCP client, for which a listening > socket is created to subsequently receive MPJs. Ok, it's good that it's covered going forward. Re-reading Paolo's comment, maybe that was the main purpose of the requested test (rather than adding to self test coverage in -stable). Should be enough to have the kernel fix itself for the -net patch. -- Mat Martineau Intel
diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 4c1895dbc2a5..779ec9d375f0 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -986,6 +986,7 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, struct mptcp_pm_addr_entry *entry, struct socket **lsk) { + int addrlen = sizeof(struct sockaddr_in); struct sockaddr_storage addr; struct mptcp_sock *msk; struct socket *ssock; @@ -1010,8 +1011,11 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, } mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family); - err = kernel_bind(ssock, (struct sockaddr *)&addr, - sizeof(struct sockaddr_in)); +#if IS_ENABLED(CONFIG_MPTCP_IPV6) + if (entry->addr.family == AF_INET6) + addrlen = sizeof(struct sockaddr_in6); +#endif + err = kernel_bind(ssock, (struct sockaddr *)&addr, addrlen); if (err) { pr_warn("kernel_bind error, err=%d", err); goto out;
This change updates mptcp_pm_nl_create_listen_socket() to create listening sockets bound to IPv6 addresses (where IPv6 is supported). Signed-off-by: Kishen Maloor <kishen.maloor@intel.com> --- net/mptcp/pm_netlink.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)