Ejemplo n.º 1
0
static unsigned int
nfqueue_tg6_v1(struct sk_buff *skb, const struct xt_target_param *par)
{
    const struct xt_NFQ_info_v1 *info = par->targinfo;
    u32 queue = info->queuenum;

    if (info->queues_total > 1)
        queue = hash_v6(skb) % info->queues_total + queue;
    return NF_QUEUE_NR(queue);
}
Ejemplo n.º 2
0
static unsigned int
nfqueue_tg_v1(struct sk_buff *skb, const struct xt_action_param *par)
{
	const struct xt_NFQ_info_v1 *info = par->targinfo;
	u32 queue = info->queuenum;

	if (info->queues_total > 1) {
		if (par->family == NFPROTO_IPV4)
			queue = (((u64) hash_v4(skb) * info->queues_total) >>
				 32) + queue;
#if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
		else if (par->family == NFPROTO_IPV6)
			queue = (((u64) hash_v6(skb) * info->queues_total) >>
				 32) + queue;
#endif
	}