e->invflags & EBT_IPROTO)
                return false;
        CLEAR_BASE_CHAIN_BIT;
-       if (strcmp(tablename, "nat") || hookmask & ~(1 << NF_BR_PRE_ROUTING))
-               return false;
        return true;
 }
 
        .name           = "arpreply",
        .revision       = 0,
        .family         = NFPROTO_BRIDGE,
+       .table          = "nat",
+       .hooks          = (1 << NF_BR_NUMHOOKS) | (1 << NF_BR_PRE_ROUTING),
        .target         = ebt_arpreply_tg,
        .checkentry     = ebt_arpreply_tg_check,
        .targetsize     = XT_ALIGN(sizeof(struct ebt_arpreply_info)),
 
        .name           = "dnat",
        .revision       = 0,
        .family         = NFPROTO_BRIDGE,
+       .hooks          = (1 << NF_BR_NUMHOOKS) | (1 << NF_BR_PRE_ROUTING) |
+                         (1 << NF_BR_LOCAL_OUT) | (1 << NF_BR_BROUTING),
        .target         = ebt_dnat_tg,
        .checkentry     = ebt_dnat_tg_check,
        .targetsize     = XT_ALIGN(sizeof(struct ebt_nat_info)),
 
        .name           = "redirect",
        .revision       = 0,
        .family         = NFPROTO_BRIDGE,
+       .hooks          = (1 << NF_BR_NUMHOOKS) | (1 << NF_BR_PRE_ROUTING) |
+                         (1 << NF_BR_BROUTING),
        .target         = ebt_redirect_tg,
        .checkentry     = ebt_redirect_tg_check,
        .targetsize     = XT_ALIGN(sizeof(struct ebt_redirect_info)),
 
        if (BASE_CHAIN && tmp == EBT_RETURN)
                return false;
        CLEAR_BASE_CHAIN_BIT;
-       if (strcmp(tablename, "nat"))
-               return false;
-       if (hookmask & ~(1 << NF_BR_POST_ROUTING))
-               return false;
 
        if (tmp < -NUM_STANDARD_TARGETS || tmp >= 0)
                return false;
        .name           = "snat",
        .revision       = 0,
        .family         = NFPROTO_BRIDGE,
+       .table          = "nat",
+       .hooks          = (1 << NF_BR_NUMHOOKS) | (1 << NF_BR_POST_ROUTING),
        .target         = ebt_snat_tg,
        .checkentry     = ebt_snat_tg_check,
        .targetsize     = XT_ALIGN(sizeof(struct ebt_nat_info)),