Home | History | Annotate | Line # | Download | only in libnpftest
npf_test.h revision 1.17
      1   1.4     rmind /*	$NetBSD: npf_test.h,v 1.17 2018/09/29 14:41:36 rmind Exp $	*/
      2   1.1     rmind 
      3   1.1     rmind /*
      4   1.1     rmind  * Public Domain.
      5   1.1     rmind  */
      6   1.1     rmind 
      7   1.1     rmind #ifndef _LIB_NPF_TEST_H_
      8   1.1     rmind #define _LIB_NPF_TEST_H_
      9   1.1     rmind 
     10  1.16  christos #ifdef _KERNEL
     11   1.1     rmind #include <sys/types.h>
     12   1.1     rmind #include <sys/mbuf.h>
     13   1.1     rmind 
     14   1.1     rmind #include <netinet/in_systm.h>
     15   1.1     rmind #include <netinet/in.h>
     16   1.1     rmind #include <netinet6/in6.h>
     17   1.1     rmind 
     18   1.1     rmind #include <netinet/ip.h>
     19   1.1     rmind #include <netinet/ip6.h>
     20   1.1     rmind #include <netinet/tcp.h>
     21   1.1     rmind #include <netinet/udp.h>
     22   1.1     rmind #include <netinet/ip_icmp.h>
     23   1.1     rmind 
     24   1.1     rmind #include <net/if.h>
     25   1.1     rmind #include <net/if_ether.h>
     26   1.1     rmind #include <net/ethertypes.h>
     27  1.16  christos #endif
     28   1.1     rmind 
     29   1.9     rmind /* Test interfaces and IP addresses. */
     30   1.9     rmind #define	IFNAME_EXT	"npftest0"
     31   1.9     rmind #define	IFNAME_INT	"npftest1"
     32  1.11     rmind #define	IFNAME_TEST	"npftest2"
     33   1.9     rmind 
     34   1.9     rmind #define	LOCAL_IP1	"10.1.1.1"
     35   1.9     rmind #define	LOCAL_IP2	"10.1.1.2"
     36   1.9     rmind #define	LOCAL_IP3	"10.1.1.3"
     37   1.9     rmind 
     38   1.9     rmind /* Note: RFC 5737 compliant addresses. */
     39   1.9     rmind #define	PUB_IP1		"192.0.2.1"
     40   1.9     rmind #define	PUB_IP2		"192.0.2.2"
     41  1.14     rmind #define	PUB_IP3		"192.0.2.3"
     42  1.14     rmind 
     43  1.14     rmind #define	REMOTE_IP1	"192.0.2.101"
     44  1.14     rmind #define	REMOTE_IP2	"192.0.2.102"
     45  1.14     rmind #define	REMOTE_IP3	"192.0.2.103"
     46   1.9     rmind 
     47  1.15     rmind #define	LOCAL_IP6	"fd01:203:405:1::1234"
     48  1.15     rmind #define	REMOTE_IP6	"2001:db8:fefe::1010"
     49  1.15     rmind #define	EXPECTED_IP6	"2001:db8:1:d550::1234"
     50  1.15     rmind 
     51  1.16  christos #if defined(_NPF_STANDALONE)
     52  1.16  christos 
     53  1.16  christos #define	MLEN		512
     54  1.16  christos 
     55  1.16  christos struct mbuf {
     56  1.16  christos 	unsigned	m_flags;
     57  1.16  christos 	int		m_type;
     58  1.16  christos 	unsigned	m_len;
     59  1.16  christos 	void *		m_next;
     60  1.16  christos 	struct {
     61  1.16  christos 		int	len;
     62  1.16  christos 	} m_pkthdr;
     63  1.16  christos 	char *		m_data;
     64  1.16  christos 	char		m_data0[MLEN];
     65  1.16  christos };
     66  1.16  christos 
     67  1.16  christos 
     68  1.16  christos #define	MT_FREE			0
     69  1.16  christos #define	M_UNWRITABLE(m, l)	false
     70  1.16  christos #define	M_NOWAIT		0x00001
     71  1.16  christos #define M_PKTHDR		0x00002
     72  1.16  christos 
     73  1.16  christos #define	m_get(x, y)		npfkern_m_get(0, MLEN)
     74  1.16  christos #define	m_gethdr(x, y)		npfkern_m_get(M_PKTHDR, MLEN)
     75  1.16  christos #define	m_length(m)		npfkern_m_length(m)
     76  1.16  christos #define	m_freem(m)		npfkern_m_freem(m)
     77  1.16  christos #define	mtod(m, t)		((t)((m)->m_data))
     78  1.16  christos 
     79  1.16  christos #endif
     80  1.16  christos 
     81  1.16  christos const npf_mbufops_t	npftest_mbufops;
     82  1.16  christos 
     83  1.16  christos struct mbuf *	npfkern_m_get(int, int);
     84  1.16  christos size_t		npfkern_m_length(const struct mbuf *);
     85  1.16  christos void		npfkern_m_freem(struct mbuf *);
     86  1.16  christos 
     87  1.15     rmind void		npf_test_init(int (*)(int, const char *, void *),
     88  1.15     rmind 		    const char *(*)(int, const void *, char *, socklen_t),
     89  1.15     rmind 		    long (*)(void));
     90  1.16  christos void		npf_test_fini(void);
     91  1.17     rmind int		npf_test_load(const void *, size_t, bool);
     92  1.11     rmind ifnet_t *	npf_test_addif(const char *, bool, bool);
     93  1.11     rmind ifnet_t *	npf_test_getif(const char *);
     94   1.9     rmind 
     95  1.11     rmind int		npf_test_statetrack(const void *, size_t, ifnet_t *,
     96   1.2     rmind 		    bool, int64_t *);
     97  1.10     rmind void		npf_test_conc(bool, unsigned);
     98   1.2     rmind 
     99   1.2     rmind struct mbuf *	mbuf_getwithdata(const void *, size_t);
    100   1.1     rmind struct mbuf *	mbuf_construct_ether(int);
    101   1.1     rmind struct mbuf *	mbuf_construct(int);
    102   1.4     rmind struct mbuf *	mbuf_construct6(int);
    103   1.1     rmind void *		mbuf_return_hdrs(struct mbuf *, bool, struct ip **);
    104  1.15     rmind void *		mbuf_return_hdrs6(struct mbuf *, struct ip6_hdr **);
    105   1.1     rmind void		mbuf_icmp_append(struct mbuf *, struct mbuf *);
    106   1.1     rmind 
    107   1.1     rmind bool		npf_nbuf_test(bool);
    108   1.7     rmind bool		npf_bpf_test(bool);
    109  1.13     rmind bool		npf_table_test(bool, void *, size_t);
    110   1.3     rmind bool		npf_state_test(bool);
    111   1.1     rmind 
    112   1.5     rmind bool		npf_rule_test(bool);
    113   1.5     rmind bool		npf_nat_test(bool);
    114   1.5     rmind 
    115  1.15     rmind int		npf_inet_pton(int, const char *, void *);
    116  1.15     rmind const char *	npf_inet_ntop(int, const void *, char *, socklen_t);
    117  1.15     rmind 
    118   1.1     rmind #endif
    119