0902b469bd
This patch implements an idletimer Xtables target that can be used to identify when interfaces have been idle for a certain period of time. Timers are identified by labels and are created when a rule is set with a new label. The rules also take a timeout value (in seconds) as an option. If more than one rule uses the same timer label, the timer will be restarted whenever any of the rules get a hit. One entry for each timer is created in sysfs. This attribute contains the timer remaining for the timer to expire. The attributes are located under the xt_idletimer class: /sys/class/xt_idletimer/timers/<label> When the timer expires, the target module sends a sysfs notification to the userspace, which can then decide what to do (eg. disconnect to save power). Cc: Timo Teras <timo.teras@iki.fi> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: Patrick McHardy <kaber@trash.net>
46 lines
1.3 KiB
C
46 lines
1.3 KiB
C
/*
|
|
* linux/include/linux/netfilter/xt_IDLETIMER.h
|
|
*
|
|
* Header file for Xtables timer target module.
|
|
*
|
|
* Copyright (C) 2004, 2010 Nokia Corporation
|
|
* Written by Timo Teras <ext-timo.teras@nokia.com>
|
|
*
|
|
* Converted to x_tables and forward-ported to 2.6.34
|
|
* by Luciano Coelho <luciano.coelho@nokia.com>
|
|
*
|
|
* Contact: Luciano Coelho <luciano.coelho@nokia.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
|
* 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef _XT_IDLETIMER_H
|
|
#define _XT_IDLETIMER_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
#define MAX_IDLETIMER_LABEL_SIZE 28
|
|
|
|
struct idletimer_tg_info {
|
|
__u32 timeout;
|
|
|
|
char label[MAX_IDLETIMER_LABEL_SIZE];
|
|
|
|
/* for kernel module internal use only */
|
|
struct idletimer_tg *timer __attribute((aligned(8)));
|
|
};
|
|
|
|
#endif
|