--- fwsync/patches/ip_fw_private_h.patch 2022/08/03 17:10:59 1.5 +++ fwsync/patches/ip_fw_private_h.patch 2022/08/09 23:42:44 1.6 @@ -1,8 +1,8 @@ diff --git a/sys/netpfil/ipfw/ip_fw_private.h b/sys/netpfil/ipfw/ip_fw_private.h -index 1440b1a40ee..61bf5115fdd 100644 +index 1440b1a40ee..7daae3e3ced 100644 --- a/sys/netpfil/ipfw/ip_fw_private.h +++ b/sys/netpfil/ipfw/ip_fw_private.h -@@ -251,6 +251,28 @@ VNET_DECLARE(unsigned int, fw_tables_sets); +@@ -251,6 +251,40 @@ VNET_DECLARE(unsigned int, fw_tables_sets); struct tables_config; @@ -13,20 +13,32 @@ index 1440b1a40ee..61bf5115fdd 100644 +#define V_hook_state VNET(hook_state) +VNET_DECLARE(ipfw_hook_t, hook_alias); +#define V_hook_alias VNET(hook_alias) ++VNET_DECLARE(ipfw_hook_t, sync_state); ++#define V_sync_state VNET(sync_state) ++VNET_DECLARE(ipfw_hook_t, sync_alias); ++#define V_sync_alias VNET(sync_alias) +#endif + +struct ipfw_dyn_hook_extdata { + unsigned int ruleid; + unsigned short rulenum; + unsigned short fibnum; ++ unsigned short kidx; ++ unsigned char cmdtype; +}; + -+int ipfw_dyn_install_sync_state(const struct ipfw_flow_id *pkt, void *rule, uint32_t ruleid, uint16_t rulenum); ++int ipfw_dyn_install_sync_state(const struct ipfw_flow_id *pkt, void *rule, ++ uint32_t ruleid, uint16_t rulenum, uint16_t kidx, uint8_t cmdtype); + +#define ipfw_unregister_state_hook() V_hook_state = NULL +#define ipfw_unregister_alias_hook() V_hook_alias = NULL +#define ipfw_register_state_hook(_hcb) V_hook_state = (_hcb) +#define ipfw_register_alias_hook(_hcb) V_hook_alias = (_hcb) ++ ++#define ipfw_unregister_state_sync() V_sync_state = NULL ++#define ipfw_unregister_alias_sync() V_sync_alias = NULL ++#define ipfw_register_state_sync(_hcb) V_sync_state = (_hcb) ++#define ipfw_register_alias_sync(_hcb) V_sync_alias = (_hcb) + #ifdef _KERNEL /*