linux/net/netfilter/ipset/ip_set_hash_mac.c

// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (C) 2014 Jozsef Kadlecsik <[email protected]> */

/* Kernel module implementing an IP set type: the hash:mac type */

#include <linux/jhash.h>
#include <linux/module.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/errno.h>
#include <linux/if_ether.h>
#include <net/netlink.h>

#include <linux/netfilter.h>
#include <linux/netfilter/ipset/ip_set.h>
#include <linux/netfilter/ipset/ip_set_hash.h>

#define IPSET_TYPE_REV_MIN
#define IPSET_TYPE_REV_MAX

MODULE_LICENSE();
MODULE_AUTHOR();
IP_SET_MODULE_DESC();
MODULE_ALIAS();

/* Type specific function prefix */
#define HTYPE

/* Member elements */
struct hash_mac4_elem {};

/* Common functions */

static bool
hash_mac4_data_equal(const struct hash_mac4_elem *e1,
		     const struct hash_mac4_elem *e2,
		     u32 *multi)
{}

static bool
hash_mac4_data_list(struct sk_buff *skb, const struct hash_mac4_elem *e)
{}

static void
hash_mac4_data_next(struct hash_mac4_elem *next,
		    const struct hash_mac4_elem *e)
{}

#define MTYPE
#define HOST_MASK
#define IP_SET_EMIT_CREATE
#define IP_SET_PROTO_UNDEF
#include "ip_set_hash_gen.h"

static int
hash_mac4_kadt(struct ip_set *set, const struct sk_buff *skb,
	       const struct xt_action_param *par,
	       enum ipset_adt adt, struct ip_set_adt_opt *opt)
{}

static int
hash_mac4_uadt(struct ip_set *set, struct nlattr *tb[],
	       enum ipset_adt adt, u32 *lineno, u32 flags, bool retried)
{}

static struct ip_set_type hash_mac_type __read_mostly =;

static int __init
hash_mac_init(void)
{}

static void __exit
hash_mac_fini(void)
{}

module_init();
module_exit(hash_mac_fini);