npf_test.h revision 1.13 1 /* $NetBSD: npf_test.h,v 1.13 2014/02/06 02:51:28 rmind Exp $ */
2
3 /*
4 * Public Domain.
5 */
6
7 #ifndef _LIB_NPF_TEST_H_
8 #define _LIB_NPF_TEST_H_
9
10 #include <sys/types.h>
11 #include <sys/mbuf.h>
12
13 #include <netinet/in_systm.h>
14 #include <netinet/in.h>
15 #include <netinet6/in6.h>
16
17 #include <netinet/ip.h>
18 #include <netinet/ip6.h>
19 #include <netinet/tcp.h>
20 #include <netinet/udp.h>
21 #include <netinet/ip_icmp.h>
22
23 #include <net/if.h>
24 #include <net/if_ether.h>
25 #include <net/ethertypes.h>
26
27 /* Test interfaces and IP addresses. */
28 #define IFNAME_EXT "npftest0"
29 #define IFNAME_INT "npftest1"
30 #define IFNAME_TEST "npftest2"
31
32 #define LOCAL_IP1 "10.1.1.1"
33 #define LOCAL_IP2 "10.1.1.2"
34 #define LOCAL_IP3 "10.1.1.3"
35
36 /* Note: RFC 5737 compliant addresses. */
37 #define PUB_IP1 "192.0.2.1"
38 #define PUB_IP2 "192.0.2.2"
39 #define REMOTE_IP1 "192.0.2.3"
40 #define REMOTE_IP2 "192.0.2.4"
41
42 void npf_test_init(long (*)(void));
43 int npf_test_load(const void *);
44 ifnet_t * npf_test_addif(const char *, bool, bool);
45 ifnet_t * npf_test_getif(const char *);
46
47 int npf_test_statetrack(const void *, size_t, ifnet_t *,
48 bool, int64_t *);
49 void npf_test_conc(bool, unsigned);
50
51 struct mbuf * mbuf_getwithdata(const void *, size_t);
52 struct mbuf * mbuf_construct_ether(int);
53 struct mbuf * mbuf_construct(int);
54 struct mbuf * mbuf_construct6(int);
55 void * mbuf_return_hdrs(struct mbuf *, bool, struct ip **);
56 void mbuf_icmp_append(struct mbuf *, struct mbuf *);
57
58 bool npf_nbuf_test(bool);
59 bool npf_bpf_test(bool);
60 bool npf_table_test(bool, void *, size_t);
61 bool npf_state_test(bool);
62
63 bool npf_rule_test(bool);
64 bool npf_nat_test(bool);
65
66 #endif
67