net: reserve ports for applications using fixed port numbers
(Dropped the infiniband part, because Tetsuo modified the related code, I will send a separate patch for it once this is accepted.) This patch introduces /proc/sys/net/ipv4/ip_local_reserved_ports which allows users to reserve ports for third-party applications. The reserved ports will not be used by automatic port assignments (e.g. when calling connect() or bind() with port number 0). Explicit port allocation behavior is unchanged. Signed-off-by: Octavian Purdila <opurdila@ixiacom.com> Signed-off-by: WANG Cong <amwang@redhat.com> Cc: Neil Horman <nhorman@tuxdriver.com> Cc: Eric Dumazet <eric.dumazet@gmail.com> Cc: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
9f977fb7ae
commit
e3826f1e94
@@ -1573,9 +1573,13 @@ static int __init inet_init(void)
|
||||
|
||||
BUILD_BUG_ON(sizeof(struct inet_skb_parm) > sizeof(dummy_skb->cb));
|
||||
|
||||
sysctl_local_reserved_ports = kzalloc(65536 / 8, GFP_KERNEL);
|
||||
if (!sysctl_local_reserved_ports)
|
||||
goto out;
|
||||
|
||||
rc = proto_register(&tcp_prot, 1);
|
||||
if (rc)
|
||||
goto out;
|
||||
goto out_free_reserved_ports;
|
||||
|
||||
rc = proto_register(&udp_prot, 1);
|
||||
if (rc)
|
||||
@@ -1674,6 +1678,8 @@ out_unregister_udp_proto:
|
||||
proto_unregister(&udp_prot);
|
||||
out_unregister_tcp_proto:
|
||||
proto_unregister(&tcp_prot);
|
||||
out_free_reserved_ports:
|
||||
kfree(sysctl_local_reserved_ports);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user