hc
2024-05-09 b9d5c334faa47a75f1f28e72d203fc0334e8471d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _NFOSF_H
#define _NFOSF_H
 
#include <uapi/linux/netfilter/nfnetlink_osf.h>
 
enum osf_fmatch_states {
   /* Packet does not match the fingerprint */
   FMATCH_WRONG = 0,
   /* Packet matches the fingerprint */
   FMATCH_OK,
   /* Options do not match the fingerprint, but header does */
   FMATCH_OPT_WRONG,
};
 
extern struct list_head nf_osf_fingers[2];
 
struct nf_osf_finger {
   struct rcu_head            rcu_head;
   struct list_head        finger_entry;
   struct nf_osf_user_finger    finger;
};
 
struct nf_osf_data {
   const char *genre;
   const char *version;
};
 
bool nf_osf_match(const struct sk_buff *skb, u_int8_t family,
         int hooknum, struct net_device *in, struct net_device *out,
         const struct nf_osf_info *info, struct net *net,
         const struct list_head *nf_osf_fingers);
 
bool nf_osf_find(const struct sk_buff *skb,
        const struct list_head *nf_osf_fingers,
        const int ttl_check, struct nf_osf_data *data);
 
#endif /* _NFOSF_H */