mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-15 23:25:07 +00:00
[NETFILTER]: nf_conntrack_sctp: remove timeout indirection
Instead of keeping pointers to the timeout values in a table, simply put the timeout values in the table directly. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9b1c2cfd7a
commit
86c0bf4095
1 changed files with 24 additions and 33 deletions
|
@ -49,23 +49,14 @@ static const char *sctp_conntrack_names[] = {
|
||||||
#define HOURS * 60 MINS
|
#define HOURS * 60 MINS
|
||||||
#define DAYS * 24 HOURS
|
#define DAYS * 24 HOURS
|
||||||
|
|
||||||
static unsigned int nf_ct_sctp_timeout_closed __read_mostly = 10 SECS;
|
static unsigned int sctp_timeouts[SCTP_CONNTRACK_MAX] __read_mostly = {
|
||||||
static unsigned int nf_ct_sctp_timeout_cookie_wait __read_mostly = 3 SECS;
|
[SCTP_CONNTRACK_CLOSED] = 10 SECS,
|
||||||
static unsigned int nf_ct_sctp_timeout_cookie_echoed __read_mostly = 3 SECS;
|
[SCTP_CONNTRACK_COOKIE_WAIT] = 3 SECS,
|
||||||
static unsigned int nf_ct_sctp_timeout_established __read_mostly = 5 DAYS;
|
[SCTP_CONNTRACK_COOKIE_ECHOED] = 3 SECS,
|
||||||
static unsigned int nf_ct_sctp_timeout_shutdown_sent __read_mostly = 300 SECS / 1000;
|
[SCTP_CONNTRACK_ESTABLISHED] = 5 DAYS,
|
||||||
static unsigned int nf_ct_sctp_timeout_shutdown_recd __read_mostly = 300 SECS / 1000;
|
[SCTP_CONNTRACK_SHUTDOWN_SENT] = 300 SECS / 1000,
|
||||||
static unsigned int nf_ct_sctp_timeout_shutdown_ack_sent __read_mostly = 3 SECS;
|
[SCTP_CONNTRACK_SHUTDOWN_RECD] = 300 SECS / 1000,
|
||||||
|
[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT] = 3 SECS,
|
||||||
static unsigned int * sctp_timeouts[]
|
|
||||||
= { NULL, /* SCTP_CONNTRACK_NONE */
|
|
||||||
&nf_ct_sctp_timeout_closed, /* SCTP_CONNTRACK_CLOSED */
|
|
||||||
&nf_ct_sctp_timeout_cookie_wait, /* SCTP_CONNTRACK_COOKIE_WAIT */
|
|
||||||
&nf_ct_sctp_timeout_cookie_echoed, /* SCTP_CONNTRACK_COOKIE_ECHOED */
|
|
||||||
&nf_ct_sctp_timeout_established, /* SCTP_CONNTRACK_ESTABLISHED */
|
|
||||||
&nf_ct_sctp_timeout_shutdown_sent, /* SCTP_CONNTRACK_SHUTDOWN_SENT */
|
|
||||||
&nf_ct_sctp_timeout_shutdown_recd, /* SCTP_CONNTRACK_SHUTDOWN_RECD */
|
|
||||||
&nf_ct_sctp_timeout_shutdown_ack_sent /* SCTP_CONNTRACK_SHUTDOWN_ACK_SENT */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define sNO SCTP_CONNTRACK_NONE
|
#define sNO SCTP_CONNTRACK_NONE
|
||||||
|
@ -380,7 +371,7 @@ static int sctp_packet(struct nf_conn *ct,
|
||||||
}
|
}
|
||||||
write_unlock_bh(&sctp_lock);
|
write_unlock_bh(&sctp_lock);
|
||||||
|
|
||||||
nf_ct_refresh_acct(ct, ctinfo, skb, *sctp_timeouts[new_state]);
|
nf_ct_refresh_acct(ct, ctinfo, skb, sctp_timeouts[new_state]);
|
||||||
|
|
||||||
if (old_state == SCTP_CONNTRACK_COOKIE_ECHOED &&
|
if (old_state == SCTP_CONNTRACK_COOKIE_ECHOED &&
|
||||||
dir == IP_CT_DIR_REPLY &&
|
dir == IP_CT_DIR_REPLY &&
|
||||||
|
@ -474,49 +465,49 @@ static struct ctl_table_header *sctp_sysctl_header;
|
||||||
static struct ctl_table sctp_sysctl_table[] = {
|
static struct ctl_table sctp_sysctl_table[] = {
|
||||||
{
|
{
|
||||||
.procname = "nf_conntrack_sctp_timeout_closed",
|
.procname = "nf_conntrack_sctp_timeout_closed",
|
||||||
.data = &nf_ct_sctp_timeout_closed,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_CLOSED],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "nf_conntrack_sctp_timeout_cookie_wait",
|
.procname = "nf_conntrack_sctp_timeout_cookie_wait",
|
||||||
.data = &nf_ct_sctp_timeout_cookie_wait,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_COOKIE_WAIT],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "nf_conntrack_sctp_timeout_cookie_echoed",
|
.procname = "nf_conntrack_sctp_timeout_cookie_echoed",
|
||||||
.data = &nf_ct_sctp_timeout_cookie_echoed,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_COOKIE_ECHOED],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "nf_conntrack_sctp_timeout_established",
|
.procname = "nf_conntrack_sctp_timeout_established",
|
||||||
.data = &nf_ct_sctp_timeout_established,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_ESTABLISHED],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "nf_conntrack_sctp_timeout_shutdown_sent",
|
.procname = "nf_conntrack_sctp_timeout_shutdown_sent",
|
||||||
.data = &nf_ct_sctp_timeout_shutdown_sent,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_SHUTDOWN_SENT],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "nf_conntrack_sctp_timeout_shutdown_recd",
|
.procname = "nf_conntrack_sctp_timeout_shutdown_recd",
|
||||||
.data = &nf_ct_sctp_timeout_shutdown_recd,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_SHUTDOWN_RECD],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "nf_conntrack_sctp_timeout_shutdown_ack_sent",
|
.procname = "nf_conntrack_sctp_timeout_shutdown_ack_sent",
|
||||||
.data = &nf_ct_sctp_timeout_shutdown_ack_sent,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
|
@ -530,49 +521,49 @@ static struct ctl_table sctp_sysctl_table[] = {
|
||||||
static struct ctl_table sctp_compat_sysctl_table[] = {
|
static struct ctl_table sctp_compat_sysctl_table[] = {
|
||||||
{
|
{
|
||||||
.procname = "ip_conntrack_sctp_timeout_closed",
|
.procname = "ip_conntrack_sctp_timeout_closed",
|
||||||
.data = &nf_ct_sctp_timeout_closed,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_CLOSED],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "ip_conntrack_sctp_timeout_cookie_wait",
|
.procname = "ip_conntrack_sctp_timeout_cookie_wait",
|
||||||
.data = &nf_ct_sctp_timeout_cookie_wait,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_COOKIE_WAIT],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "ip_conntrack_sctp_timeout_cookie_echoed",
|
.procname = "ip_conntrack_sctp_timeout_cookie_echoed",
|
||||||
.data = &nf_ct_sctp_timeout_cookie_echoed,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_COOKIE_ECHOED],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "ip_conntrack_sctp_timeout_established",
|
.procname = "ip_conntrack_sctp_timeout_established",
|
||||||
.data = &nf_ct_sctp_timeout_established,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_ESTABLISHED],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "ip_conntrack_sctp_timeout_shutdown_sent",
|
.procname = "ip_conntrack_sctp_timeout_shutdown_sent",
|
||||||
.data = &nf_ct_sctp_timeout_shutdown_sent,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_SHUTDOWN_SENT],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "ip_conntrack_sctp_timeout_shutdown_recd",
|
.procname = "ip_conntrack_sctp_timeout_shutdown_recd",
|
||||||
.data = &nf_ct_sctp_timeout_shutdown_recd,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_SHUTDOWN_RECD],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "ip_conntrack_sctp_timeout_shutdown_ack_sent",
|
.procname = "ip_conntrack_sctp_timeout_shutdown_ack_sent",
|
||||||
.data = &nf_ct_sctp_timeout_shutdown_ack_sent,
|
.data = &sctp_timeouts[SCTP_CONNTRACK_SHUTDOWN_ACK_SENT],
|
||||||
.maxlen = sizeof(unsigned int),
|
.maxlen = sizeof(unsigned int),
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec_jiffies,
|
.proc_handler = &proc_dointvec_jiffies,
|
||||||
|
|
Loading…
Reference in a new issue