[PATCH mptcp-net v3] mptcp: netlink: process IPv6 addrs in creating listening sockets

Kishen Maloor posted 1 patch 2 years, 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20220128003746.2732527-1-kishen.maloor@intel.com
Maintainers: "David S. Miller" <davem@davemloft.net>, Mat Martineau <mathew.j.martineau@linux.intel.com>, Matthieu Baerts <matthieu.baerts@tessares.net>, Geliang Tang <geliangtang@gmail.com>, Jakub Kicinski <kuba@kernel.org>
net/mptcp/pm_netlink.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
[PATCH mptcp-net v3] mptcp: netlink: process IPv6 addrs in creating listening sockets
Posted by Kishen Maloor 2 years, 2 months ago
This change updates mptcp_pm_nl_create_listen_socket() to create
listening sockets bound to IPv6 addresses (where IPv6 is supported).

Fixes: 1729cf186d8a ("mptcp: create the listening socket for new port")
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 5eac5bde5b49..93800f32fcb6 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -925,6 +925,7 @@ static int mptcp_pm_nl_append_new_local_addr(struct pm_nl_pernet *pernet,
 static int mptcp_pm_nl_create_listen_socket(struct sock *sk,
 					    struct mptcp_pm_addr_entry *entry)
 {
+	int addrlen = sizeof(struct sockaddr_in);
 	struct sockaddr_storage addr;
 	struct mptcp_sock *msk;
 	struct socket *ssock;
@@ -949,8 +950,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;

base-commit: 05854a699d27b11d8fb3217ec2e0dbf28ecb58e8
-- 
2.31.1


Re: [PATCH mptcp-net v3] mptcp: netlink: process IPv6 addrs in creating listening sockets
Posted by Mat Martineau 2 years, 2 months ago
On Thu, 27 Jan 2022, Kishen Maloor wrote:

> This change updates mptcp_pm_nl_create_listen_socket() to create
> listening sockets bound to IPv6 addresses (where IPv6 is supported).
>
> Fixes: 1729cf186d8a ("mptcp: create the listening socket for new port")
> Signed-off-by: Kishen Maloor <kishen.maloor@intel.com>
> ---
> net/mptcp/pm_netlink.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>

Looks good for the export branch:

Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>

> diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
> index 5eac5bde5b49..93800f32fcb6 100644
> --- a/net/mptcp/pm_netlink.c
> +++ b/net/mptcp/pm_netlink.c
> @@ -925,6 +925,7 @@ static int mptcp_pm_nl_append_new_local_addr(struct pm_nl_pernet *pernet,
> static int mptcp_pm_nl_create_listen_socket(struct sock *sk,
> 					    struct mptcp_pm_addr_entry *entry)
> {
> +	int addrlen = sizeof(struct sockaddr_in);
> 	struct sockaddr_storage addr;
> 	struct mptcp_sock *msk;
> 	struct socket *ssock;
> @@ -949,8 +950,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;
>
> base-commit: 05854a699d27b11d8fb3217ec2e0dbf28ecb58e8
> -- 
> 2.31.1
>
>
>

--
Mat Martineau
Intel

Re: [PATCH mptcp-net v3] mptcp: netlink: process IPv6 addrs in creating listening sockets
Posted by Geliang Tang 2 years, 2 months ago
Mat Martineau <mathew.j.martineau@linux.intel.com> 于2022年1月28日周五 10:09写道:
>
> On Thu, 27 Jan 2022, Kishen Maloor wrote:
>
> > This change updates mptcp_pm_nl_create_listen_socket() to create
> > listening sockets bound to IPv6 addresses (where IPv6 is supported).
> >
> > Fixes: 1729cf186d8a ("mptcp: create the listening socket for new port")

Acked-by: Geliang Tang <geliang.tang@suse.com>

> > Signed-off-by: Kishen Maloor <kishen.maloor@intel.com>
> > ---
> > net/mptcp/pm_netlink.c | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> >
>
> Looks good for the export branch:
>
> Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
>
> > diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
> > index 5eac5bde5b49..93800f32fcb6 100644
> > --- a/net/mptcp/pm_netlink.c
> > +++ b/net/mptcp/pm_netlink.c
> > @@ -925,6 +925,7 @@ static int mptcp_pm_nl_append_new_local_addr(struct pm_nl_pernet *pernet,
> > static int mptcp_pm_nl_create_listen_socket(struct sock *sk,
> >                                           struct mptcp_pm_addr_entry *entry)
> > {
> > +     int addrlen = sizeof(struct sockaddr_in);
> >       struct sockaddr_storage addr;
> >       struct mptcp_sock *msk;
> >       struct socket *ssock;
> > @@ -949,8 +950,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;
> >
> > base-commit: 05854a699d27b11d8fb3217ec2e0dbf28ecb58e8
> > --
> > 2.31.1
> >
> >
> >
>
> --
> Mat Martineau
> Intel
>

Re: [PATCH mptcp-net v3] mptcp: netlink: process IPv6 addrs in creating listening sockets
Posted by Matthieu Baerts 2 years, 2 months ago
Hi Kishen, Mat, Geliang,

On 28/01/2022 09:18, Geliang Tang wrote:
> Mat Martineau <mathew.j.martineau@linux.intel.com> 于2022年1月28日周五 10:09写道:
>>
>> On Thu, 27 Jan 2022, Kishen Maloor wrote:
>>
>>> This change updates mptcp_pm_nl_create_listen_socket() to create
>>> listening sockets bound to IPv6 addresses (where IPv6 is supported).
>>>
>>> Fixes: 1729cf186d8a ("mptcp: create the listening socket for new port")
> 
> Acked-by: Geliang Tang <geliang.tang@suse.com>
> 
>>> Signed-off-by: Kishen Maloor <kishen.maloor@intel.com>
>>> ---
>>> net/mptcp/pm_netlink.c | 8 ++++++--
>>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>>
>>
>> Looks good for the export branch:
>>
>> Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>

Thank you for having extracted the patch and the reviews!

Now in our tree (fix for -net) with Mat's RvB and Geliang's ACK tags:

- df2b5c816e23: mptcp: netlink: process IPv6 addrs in creating listening
sockets
- Results: fa314fbb2be0..e3f80698163c

Builds and tests are now in progress:

https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20220128T171819
https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export

Cheers,
Matt
-- 
Tessares | Belgium | Hybrid Access Solutions
www.tessares.net