From: Cong Wang <amwang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Eric Dumazet <eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>,
linux-sctp-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Subject: Re: [RFC Patch] net: reserve ports for applications using fixed port numbers
Date: Wed, 03 Feb 2010 13:15:45 +0800 [thread overview]
Message-ID: <4B690681.6070908@redhat.com> (raw)
In-Reply-To: <1265171993.3274.3.camel@edumazet-laptop>
Eric Dumazet wrote:
> Le mardi 02 février 2010 à 23:30 -0500, Amerigo Wang a écrit :
>> This patch introduces /proc/sys/net/ipv4/ip_local_reserved_ports,
>> it can be used like ip_local_port_range, but this is used to
>> reserve ports for third-party applications which use fixed
>> port numbers within ip_local_port_range.
>>
>> This only affects the applications which call socket functions
>> like bind(2) with port number 0, to prevent the kernel getting the ports
>> within the specified range for them. For applications which use fixed
>> port number, it will have no effects.
>>
>> Any comments are welcome.
>>
>> Signed-off-by: WANG Cong <amwang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>> Cc: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
>> Cc: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
>> Cc: Eric Dumazet <eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
>> .procname = "igmp_max_memberships",
>> diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
>> index f0126fd..83045ca 100644
>> --- a/net/ipv4/udp.c
>> +++ b/net/ipv4/udp.c
>> @@ -210,8 +210,11 @@ int udp_lib_get_port(struct sock *sk, unsigned short snum,
>> inet_get_local_port_range(&low, &high);
>> remaining = (high - low) + 1;
>>
>> +again:
>> rand = net_random();
>> first = (((u64)rand * remaining) >> 32) + low;
>> + if (inet_is_reserved_local_port(first))
>> + goto again;
>> /*
>> * force rand to be an odd multiple of UDP_HTABLE_SIZE
>> */
>
> Unless I misread the patch, you are checking only the 'first' port that
> udp_lib_get_port() chose.
>
> I would use inet_get_local_reserved_ports(&min_res, &max_res);
> and check every port that we chose in the loop to avoid it if necessary.
>
Hmm, right, 'first' is used to do iteration, but I did missed 'last'.
Thanks! I will fix this in the next update.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Cong Wang <amwang@redhat.com>
To: Eric Dumazet <eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>,
linux-sctp-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Subject: Re: [RFC Patch] net: reserve ports for applications using fixed port
Date: Wed, 03 Feb 2010 05:15:45 +0000 [thread overview]
Message-ID: <4B690681.6070908@redhat.com> (raw)
In-Reply-To: <1265171993.3274.3.camel@edumazet-laptop>
Eric Dumazet wrote:
> Le mardi 02 février 2010 à 23:30 -0500, Amerigo Wang a écrit :
>> This patch introduces /proc/sys/net/ipv4/ip_local_reserved_ports,
>> it can be used like ip_local_port_range, but this is used to
>> reserve ports for third-party applications which use fixed
>> port numbers within ip_local_port_range.
>>
>> This only affects the applications which call socket functions
>> like bind(2) with port number 0, to prevent the kernel getting the ports
>> within the specified range for them. For applications which use fixed
>> port number, it will have no effects.
>>
>> Any comments are welcome.
>>
>> Signed-off-by: WANG Cong <amwang@redhat.com>
>> Cc: David Miller <davem@davemloft.net>
>> Cc: Neil Horman <nhorman@tuxdriver.com>
>> Cc: Eric Dumazet <eric.dumazet@gmail.com>
>
>> .procname = "igmp_max_memberships",
>> diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
>> index f0126fd..83045ca 100644
>> --- a/net/ipv4/udp.c
>> +++ b/net/ipv4/udp.c
>> @@ -210,8 +210,11 @@ int udp_lib_get_port(struct sock *sk, unsigned short snum,
>> inet_get_local_port_range(&low, &high);
>> remaining = (high - low) + 1;
>>
>> +again:
>> rand = net_random();
>> first = (((u64)rand * remaining) >> 32) + low;
>> + if (inet_is_reserved_local_port(first))
>> + goto again;
>> /*
>> * force rand to be an odd multiple of UDP_HTABLE_SIZE
>> */
>
> Unless I misread the patch, you are checking only the 'first' port that
> udp_lib_get_port() chose.
>
> I would use inet_get_local_reserved_ports(&min_res, &max_res);
> and check every port that we chose in the loop to avoid it if necessary.
>
Hmm, right, 'first' is used to do iteration, but I did missed 'last'.
Thanks! I will fix this in the next update.
WARNING: multiple messages have this Message-ID (diff)
From: Cong Wang <amwang@redhat.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org,
netdev@vger.kernel.org, Neil Horman <nhorman@tuxdriver.com>,
linux-sctp@vger.kernel.org, David Miller <davem@davemloft.net>
Subject: Re: [RFC Patch] net: reserve ports for applications using fixed port numbers
Date: Wed, 03 Feb 2010 13:15:45 +0800 [thread overview]
Message-ID: <4B690681.6070908@redhat.com> (raw)
In-Reply-To: <1265171993.3274.3.camel@edumazet-laptop>
Eric Dumazet wrote:
> Le mardi 02 février 2010 à 23:30 -0500, Amerigo Wang a écrit :
>> This patch introduces /proc/sys/net/ipv4/ip_local_reserved_ports,
>> it can be used like ip_local_port_range, but this is used to
>> reserve ports for third-party applications which use fixed
>> port numbers within ip_local_port_range.
>>
>> This only affects the applications which call socket functions
>> like bind(2) with port number 0, to prevent the kernel getting the ports
>> within the specified range for them. For applications which use fixed
>> port number, it will have no effects.
>>
>> Any comments are welcome.
>>
>> Signed-off-by: WANG Cong <amwang@redhat.com>
>> Cc: David Miller <davem@davemloft.net>
>> Cc: Neil Horman <nhorman@tuxdriver.com>
>> Cc: Eric Dumazet <eric.dumazet@gmail.com>
>
>> .procname = "igmp_max_memberships",
>> diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
>> index f0126fd..83045ca 100644
>> --- a/net/ipv4/udp.c
>> +++ b/net/ipv4/udp.c
>> @@ -210,8 +210,11 @@ int udp_lib_get_port(struct sock *sk, unsigned short snum,
>> inet_get_local_port_range(&low, &high);
>> remaining = (high - low) + 1;
>>
>> +again:
>> rand = net_random();
>> first = (((u64)rand * remaining) >> 32) + low;
>> + if (inet_is_reserved_local_port(first))
>> + goto again;
>> /*
>> * force rand to be an odd multiple of UDP_HTABLE_SIZE
>> */
>
> Unless I misread the patch, you are checking only the 'first' port that
> udp_lib_get_port() chose.
>
> I would use inet_get_local_reserved_ports(&min_res, &max_res);
> and check every port that we chose in the loop to avoid it if necessary.
>
Hmm, right, 'first' is used to do iteration, but I did missed 'last'.
Thanks! I will fix this in the next update.
next prev parent reply other threads:[~2010-02-03 5:15 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-03 4:30 [RFC Patch] net: reserve ports for applications using fixed port numbers Amerigo Wang
2010-02-03 4:30 ` Amerigo Wang
2010-02-03 4:30 ` Amerigo Wang
[not found] ` <20100203043332.3817.27932.sendpatchset-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2010-02-03 4:39 ` Eric Dumazet
2010-02-03 4:39 ` Eric Dumazet
2010-02-03 4:39 ` [RFC Patch] net: reserve ports for applications using fixed Eric Dumazet
2010-02-03 5:15 ` Cong Wang [this message]
2010-02-03 5:15 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Cong Wang
2010-02-03 5:15 ` [RFC Patch] net: reserve ports for applications using fixed port Cong Wang
2010-02-03 11:12 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Octavian Purdila
2010-02-03 11:12 ` Octavian Purdila
2010-02-03 11:12 ` Octavian Purdila
[not found] ` <201002031312.48531.opurdila-+zzKsuq53OdBDgjK7y7TUQ@public.gmane.org>
2010-02-04 3:23 ` Cong Wang
2010-02-04 3:23 ` Cong Wang
2010-02-04 3:23 ` [RFC Patch] net: reserve ports for applications using fixed port Cong Wang
[not found] ` <4B6A3DBA.1000706-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-02-04 12:44 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Octavian Purdila
2010-02-04 12:44 ` Octavian Purdila
2010-02-04 12:44 ` Octavian Purdila
[not found] ` <201002041444.01897.opurdila-+zzKsuq53OdBDgjK7y7TUQ@public.gmane.org>
2010-02-04 17:41 ` David Miller
2010-02-04 17:41 ` David Miller
2010-02-04 17:41 ` [RFC Patch] net: reserve ports for applications using fixed David Miller
[not found] ` <20100204.094110.64247447.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2010-02-04 18:15 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Octavian Purdila
2010-02-04 18:15 ` Octavian Purdila
2010-02-04 18:15 ` Octavian Purdila
[not found] ` <201002042015.51092.opurdila-+zzKsuq53OdBDgjK7y7TUQ@public.gmane.org>
2010-02-04 18:21 ` David Miller
2010-02-04 18:21 ` David Miller
2010-02-04 18:21 ` [RFC Patch] net: reserve ports for applications using fixed David Miller
2010-02-04 21:45 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Tetsuo Handa
2010-02-04 21:45 ` Tetsuo Handa
2010-02-04 21:45 ` Tetsuo Handa
[not found] ` <201002050645.CEC95380.MLOtOVFFHSFOQJ-JPay3/Yim36HaxMnTkn67Xf5DAMn2ifp@public.gmane.org>
2010-02-04 21:56 ` David Miller
2010-02-04 21:56 ` David Miller
2010-02-04 21:56 ` [RFC Patch] net: reserve ports for applications using fixed David Miller
2010-02-05 0:41 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Tetsuo Handa
2010-02-05 0:41 ` Tetsuo Handa
2010-02-05 1:05 ` Octavian Purdila
2010-02-05 1:05 ` Octavian Purdila
2010-02-05 5:58 ` [RFC Patch] net: reserve ports for applications using fixed port Cong Wang
2010-02-05 6:01 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Cong Wang
2010-02-05 12:28 ` Octavian Purdila
2010-02-05 12:28 ` Octavian Purdila
2010-02-05 4:45 ` Cong Wang
2010-02-05 4:45 ` [RFC Patch] net: reserve ports for applications using fixed port Cong Wang
[not found] ` <4B6BA272.4090405-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-02-05 12:05 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Octavian Purdila
2010-02-05 12:05 ` Octavian Purdila
2010-02-05 12:05 ` Octavian Purdila
[not found] ` <201002051405.54029.opurdila-+zzKsuq53OdBDgjK7y7TUQ@public.gmane.org>
2010-02-08 3:21 ` Cong Wang
2010-02-08 3:21 ` Cong Wang
2010-02-08 3:21 ` [RFC Patch] net: reserve ports for applications using fixed port Cong Wang
[not found] ` <4B6F834E.4010801-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-02-08 16:51 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Octavian Purdila
2010-02-08 16:51 ` Octavian Purdila
2010-02-08 16:51 ` Octavian Purdila
2010-02-05 7:11 ` Bart Van Assche
2010-02-05 7:11 ` Bart Van Assche
2010-02-05 7:11 ` [RFC Patch] net: reserve ports for applications using fixed port Bart Van Assche
2010-02-05 7:25 ` [RFC Patch] net: reserve ports for applications using fixed port numbers Cong Wang
2010-02-05 7:25 ` [RFC Patch] net: reserve ports for applications using fixed port Cong Wang
2010-02-05 9:08 ` [RFC Patch] net: reserve ports for applications using fixed portnumbers Tetsuo Handa
2010-02-05 9:08 ` Tetsuo Handa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B690681.6070908@redhat.com \
--to=amwang-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sctp-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.