Index: sys/modules/Makefile =================================================================== --- sys/modules/Makefile +++ sys/modules/Makefile @@ -290,6 +290,7 @@ ${_pchtherm} \ ${_pcfclock} \ ${_pf} \ + ${_pfdummynet} \ ${_pflog} \ ${_pfsync} \ plip \ @@ -543,6 +544,7 @@ ${MK_INET6_SUPPORT} != "no")) || defined(ALL_MODULES) _pf= pf _pflog= pflog +_pfdummynet= pfdummynet .if ${MK_INET_SUPPORT} != "no" _pfsync= pfsync .endif Index: sys/modules/pfdummynet/Makefile =================================================================== --- /dev/null +++ sys/modules/pfdummynet/Makefile @@ -0,0 +1,14 @@ +# $FreeBSD$ + +.PATH: ${SRCTOP}/sys/netpfil/ipfw +KMOD= pfdummynet +SRCS= ip_dummynet.c +SRCS+= ip_dn_glue.c ip_dn_io.c +SRCS+= dn_aqm_codel.c dn_aqm_pie.c +SRCS+= dn_heap.c dn_sched_fifo.c dn_sched_qfq.c dn_sched_rr.c dn_sched_wf2q.c +SRCS+= dn_sched_prio.c dn_sched_fq_codel.c dn_sched_fq_pie.c +SRCS+= opt_inet6.h + +CFLAGS+=-DPF_DUMMYNET + +.include Index: sys/netpfil/ipfw/dn_aqm.h =================================================================== --- sys/netpfil/ipfw/dn_aqm.h +++ sys/netpfil/ipfw/dn_aqm.h @@ -153,12 +153,17 @@ int dn_aqm_modevent(module_t mod, int cmd, void *arg); +#ifndef PF_DUMMYNET +#define DNAQM_DEPENDS(name) MODULE_DEPEND(name, dummynet, 3, 3, 3) +#else +#define DNAQM_DEPENDS(name) MODULE_DEPEND(name, pfdummynet, 1, 1, 1) +#endif + #define DECLARE_DNAQM_MODULE(name, dnaqm) \ static moduledata_t name##_mod = { \ #name, dn_aqm_modevent, dnaqm \ }; \ DECLARE_MODULE(name, name##_mod, \ SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY); \ - MODULE_DEPEND(name, dummynet, 3, 3, 3) - + DNAQM_DEPENDS(name) #endif Index: sys/netpfil/ipfw/dn_sched.h =================================================================== --- sys/netpfil/ipfw/dn_sched.h +++ sys/netpfil/ipfw/dn_sched.h @@ -195,11 +195,17 @@ int dn_sched_modevent(module_t mod, int cmd, void *arg); +#ifndef PF_DUMMYNET +#define DNSCHED_DEPENDS(name) MODULE_DEPEND(name, dummynet, 3, 3, 3) +#else +#define DNSCHED_DEPENDS(name) MODULE_DEPEND(name, pfdummynet, 1, 1, 1) +#endif + #define DECLARE_DNSCHED_MODULE(name, dnsched) \ static moduledata_t name##_mod = { \ #name, dn_sched_modevent, dnsched \ }; \ DECLARE_MODULE(name, name##_mod, \ SI_SUB_PROTO_FIREWALL, SI_ORDER_ANY); \ - MODULE_DEPEND(name, dummynet, 3, 3, 3) + DNSCHED_DEPENDS(name) #endif /* _DN_SCHED_H */ Index: sys/netpfil/ipfw/ip_dummynet.c =================================================================== --- sys/netpfil/ipfw/ip_dummynet.c +++ sys/netpfil/ipfw/ip_dummynet.c @@ -2734,9 +2734,15 @@ #define DN_SI_SUB SI_SUB_PROTO_FIREWALL #define DN_MODEV_ORD (SI_ORDER_ANY - 128) /* after ipfw */ +#ifndef PF_DUMMYNET DECLARE_MODULE(dummynet, dummynet_mod, DN_SI_SUB, DN_MODEV_ORD); MODULE_DEPEND(dummynet, ipfw, 3, 3, 3); MODULE_VERSION(dummynet, 3); +#else +DECLARE_MODULE(pfdummynet, dummynet_mod, DN_SI_SUB, DN_MODEV_ORD); +MODULE_DEPEND(pfdummynet, pf, 1, 1, 1); +MODULE_VERSION(pfdummynet, 3); +#endif /* * Starting up. Done in order after dummynet_modevent() has been called.