linux/net/netfilter/xt_IDLETIMER.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * linux/net/netfilter/xt_IDLETIMER.c
 *
 * Netfilter module to trigger a timer when packet matches.
 * After timer expires a kevent will be sent.
 *
 * Copyright (C) 2004, 2010 Nokia Corporation
 * Written by Timo Teras <[email protected]>
 *
 * Converted to x_tables and reworked for upstream inclusion
 * by Luciano Coelho <[email protected]>
 *
 * Contact: Luciano Coelho <[email protected]>
 */

#define pr_fmt(fmt)

#include <linux/module.h>
#include <linux/timer.h>
#include <linux/alarmtimer.h>
#include <linux/list.h>
#include <linux/mutex.h>
#include <linux/netfilter.h>
#include <linux/netfilter/x_tables.h>
#include <linux/netfilter/xt_IDLETIMER.h>
#include <linux/kdev_t.h>
#include <linux/kobject.h>
#include <linux/workqueue.h>
#include <linux/sysfs.h>

struct idletimer_tg {};

static LIST_HEAD(idletimer_tg_list);
static DEFINE_MUTEX(list_mutex);

static struct kobject *idletimer_tg_kobj;

static
struct idletimer_tg *__idletimer_tg_find_by_label(const char *label)
{}

static ssize_t idletimer_tg_show(struct device *dev,
				 struct device_attribute *attr, char *buf)
{}

static void idletimer_tg_work(struct work_struct *work)
{}

static void idletimer_tg_expired(struct timer_list *t)
{}

static enum alarmtimer_restart idletimer_tg_alarmproc(struct alarm *alarm,
							  ktime_t now)
{}

static int idletimer_check_sysfs_name(const char *name, unsigned int size)
{}

static int idletimer_tg_create(struct idletimer_tg_info *info)
{}

static int idletimer_tg_create_v1(struct idletimer_tg_info_v1 *info)
{}

/*
 * The actual xt_tables plugin.
 */
static unsigned int idletimer_tg_target(struct sk_buff *skb,
					 const struct xt_action_param *par)
{}

/*
 * The actual xt_tables plugin.
 */
static unsigned int idletimer_tg_target_v1(struct sk_buff *skb,
					 const struct xt_action_param *par)
{}

static int idletimer_tg_helper(struct idletimer_tg_info *info)
{}


static int idletimer_tg_checkentry(const struct xt_tgchk_param *par)
{}

static int idletimer_tg_checkentry_v1(const struct xt_tgchk_param *par)
{}

static void idletimer_tg_destroy(const struct xt_tgdtor_param *par)
{}

static void idletimer_tg_destroy_v1(const struct xt_tgdtor_param *par)
{}


static struct xt_target idletimer_tg[] __read_mostly =;

static struct class *idletimer_tg_class;

static struct device *idletimer_tg_device;

static int __init idletimer_tg_init(void)
{}

static void __exit idletimer_tg_exit(void)
{}

module_init();
module_exit(idletimer_tg_exit);

MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS();
MODULE_ALIAS();