⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qif.h

📁 pfil src. solaris, freebsd
💻 H
字号:
/* * Copyright (C) 2003 by Darren Reed. * * See the IPFILTER.LICENCE file for details on licencing. */#ifdef sun# include <sys/dditypes.h> # include <sys/ptms.h>#endif#ifdef	IRE_ILL_CNtypedef	union	{	struct sockaddr_in qfa_in;	struct sockaddr_in6 qfa_in6;} qfa_t;# define	qfa_family	qfa_in.sin_family# define	qfa_v4addr	qfa_in.sin_addr# define	qfa_v6addr	qfa_in6.sin6_addr#else# define	QF_IPIF(x)	((ill_t *)(x)->qf_ill)->ill_ipif# define	qf_netmask	QF_IPIF->ipif_net_mask#  define	qf_dstaddr	QF_IPIF->ipif_pp_dst_addr# if SOLARIS2 <= 7#  define	qf_localaddr	QF_IPIF->ipif_local_addr#  define	qf_broadaddr	QF_IPIF->ipif_broadcast_addr# else#  define	qf_localaddr	QF_IPIF->ipif_lcl_addr#  define	qf_broadaddr	QF_IPIF->ipif_brd_addr# endif# ifdef	USE_INET6#  define	qf_v6netmask	QF_IPIF->ipif_v6net_mask#  define	qf_v6broadaddr	QF_IPIF->ipif_v6brd_addr#  define	qf_v6dstaddr	QF_IPIF->ipif_v6pp_dst_addr# endif#endiftypedef	struct	qif	{	/* for alignment reasons, the lock is first. */	kmutex_t	qf_lock;	struct qifplock {		kmutex_t	pt_lock;#ifdef sun		kcondvar_t	pt_cv;#endif		int		pt_refcnt;		int		pt_access;	} qf_ptl;	struct	qif	*qf_next;	struct	qif	*qf_ipmp;	/* Pointer to group qif */	void		*qf_ill;	queue_t		*qf_q;	queue_t		*qf_oq;	/* statistical data */	u_long		qf_nr;	u_long		qf_nw;	u_long		qf_bad;	u_long		qf_copy;	u_long		qf_copyfail;	u_long		qf_drop;	u_long		qf_notip;	u_long		qf_nodata;	u_long		qf_notdata;	/* other data for the NIC on this queue */	size_t		qf_qifsz;	size_t		qf_hl;		/* header length */	u_int		qf_num;	u_int		qf_ppa;		/* Physical Point of Attachment */	int		qf_sap;		/* Service Access Point */	int		qf_bound;	int		qf_flags;	int		qf_waitack;	int		qf_max_frag;	/* MTU for interface */	char		qf_name[LIFNAMSIZ];	char		*qf_members;} qif_t;typedef	struct	qpktinfo	{	/* data that changes per-packet */	qif_t		*qpi_real;	/* the real one on the STREAM */	void		*qpi_ill;	/* COPIED */	mblk_t		*qpi_m;	queue_t		*qpi_q;	char		*qpi_name;	/* points to qf_real->qf_name */	void		*qpi_data;	/* where layer 3 header starts */	size_t		qpi_off;	size_t		qpi_hl;		/* COPIED */	u_int		qpi_ppa;	/* COPIED */	u_int		qpi_num;	/* COPIED */	int		qpi_flags;	/* COPIED */	int		qpi_max_frag;	/* COPIED */} qpktinfo_t;#ifdef sun# if SOLARIS2 <= 7#  define	QF_V4_ADDR(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_local_addr#  define	QF_V4_BROADCAST(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_broadcast_addr# else#  define	QF_V4_ADDR(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_lcl_addr#  define	QF_V4_BROADCAST(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_brd_addr# endif# define	QF_V4_NETMASK(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_net_mask# define	QF_V4_PEERADDR(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_pp_dst_addr# ifdef	USE_INET6#  define	QF_V6_BROADCAST(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_v6brd_addr#  define	QF_V6_NETMASK(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_v6net_mask#  define	QF_V6_PEERADDR(x)	\			((ill_t *)(x)->qf_ill)->ill_ipif->ipif_v6pp_dst_addr# endif#endif#ifdef __hpux# define	QF_V4_ADDR(x)		((ifinfo_t *)(x)->qf_ill)->ifi_addr[0]# define	QF_V4_BROADCAST(x)	0# define	QF_V4_NETMASK(x)	0xffffffff# define	QF_V4_PEERADDR(x)	0# ifdef	USE_INET6#  define	QF_V6_BROADCAST(x)	0#  define	QF_V6_NETMASK(x)	0#  define	QF_V6_PEERADDR(x)	0# endif#endif#define	QF_GROUP	0x0001#define	QF_IPMP		0x0002extern void *q_to_ill(queue_t *);extern struct qif *qif_new(queue_t *, int);extern int qif_attach(queue_t *);extern void qif_delete(struct qif *, queue_t *);extern int qif_startup(void);extern void qif_stop(void);extern void *qif_iflookup(char *, int);#ifdef __hpuxstruct irinfo_s;extern void *ir_to_ill(struct irinfo_s *ir);#endifextern struct qif *qif_walk(struct qif **);extern struct qif *qif_head;extern int qif_verbose;extern void qif_update(struct qif *, mblk_t *);extern void qif_nd_init(void);extern void qif_hl_set(char *);extern void qif_ipmp_delete(char *);extern void qif_ipmp_update(char *);extern void qif_ipmp_syncmaster(struct qif *, const int);extern void qif_ipmp_syncslave(struct qif *, const int);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -