0001
0002 #ifndef _NFOSF_H
0003 #define _NFOSF_H
0004
0005 #include <uapi/linux/netfilter/nfnetlink_osf.h>
0006
0007 enum osf_fmatch_states {
0008
0009 FMATCH_WRONG = 0,
0010
0011 FMATCH_OK,
0012
0013 FMATCH_OPT_WRONG,
0014 };
0015
0016 extern struct list_head nf_osf_fingers[2];
0017
0018 struct nf_osf_finger {
0019 struct rcu_head rcu_head;
0020 struct list_head finger_entry;
0021 struct nf_osf_user_finger finger;
0022 };
0023
0024 struct nf_osf_data {
0025 const char *genre;
0026 const char *version;
0027 };
0028
0029 bool nf_osf_match(const struct sk_buff *skb, u_int8_t family,
0030 int hooknum, struct net_device *in, struct net_device *out,
0031 const struct nf_osf_info *info, struct net *net,
0032 const struct list_head *nf_osf_fingers);
0033
0034 bool nf_osf_find(const struct sk_buff *skb,
0035 const struct list_head *nf_osf_fingers,
0036 const int ttl_check, struct nf_osf_data *data);
0037
0038 #endif