/*
- * Copyright (c) 2011-2012 Apple Inc. All rights reserved.
+ * Copyright (c) 2011-2019 Apple Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
struct route_in6;
struct sockaddr_in6;
struct pf_rule;
-struct ip_fw;
/*
* Arguments for calling ipfw_chk() and dummynet_io(). We put them
struct ip_fw_args {
struct mbuf *fwa_m; /* the mbuf chain */
struct ifnet *fwa_oif; /* output interface */
- struct sockaddr_in *fwa_next_hop; /* forward address */
- struct ip_fw *fwa_ipfw_rule; /* matching IPFW rule */
struct pf_rule *fwa_pf_rule; /* matching PF rule */
struct ether_header *fwa_eh; /* for bridged packets */
- int fwa_flags; /* for dummynet */
- int fwa_oflags; /* for dummynet */
+ int fwa_flags; /* for dummynet */
+ int fwa_oflags; /* for dummynet */
union {
struct ip_out_args *_fwa_ipoa; /* for dummynet */
struct ip6_out_args *_fwa_ip6oa; /* for dummynet */
struct sockaddr_in6 *_fwa_dst6; /* for IPv6 dummynet */
} fwa_dst_;
struct route_in6 *fwa_ro6_pmtu; /* for IPv6 output */
- struct ifnet *fwa_origifp; /* for IPv6 output */
- u_int32_t fwa_mtu; /* for IPv6 output */
- int fwa_alwaysfrag; /* for IPv6 output */
- u_int32_t fwa_unfragpartlen; /* for IPv6 output */
- struct ip6_exthdrs *fwa_exthdrs; /* for IPv6 output */
+ struct ifnet *fwa_origifp; /* for IPv6 output */
+ u_int32_t fwa_mtu; /* for IPv6 output */
+ u_int32_t fwa_unfragpartlen; /* for IPv6 output */
+ struct ip6_exthdrs *fwa_exthdrs; /* for IPv6 output */
struct ip_flow_id fwa_id; /* grabbed from IP header */
- u_int16_t fwa_divert_rule;/* divert cookie */
u_int32_t fwa_cookie;
};
#define fwa_ipoa fwa_ipoa_._fwa_ipoa
#define fwa_dst fwa_dst_._fwa_dst
#define fwa_dst6 fwa_dst_._fwa_dst6
+/* Allocate a separate structure for inputs args to save space and bzero time */
+struct ip_fw_in_args {
+ struct pf_rule *fwai_pf_rule; /* matching PF rule */
+};
+
#endif /* BSD_KERNEL_PRIVATE */
#endif /* __IP_FLOWID_H__ */