On Monday 2011-11-07 01:52, Pablo Neira Ayuso wrote: >> +static __u32 get_hash(struct sk_buff *skb, struct xt_hmark_info *info) >> +{ >> + int nhoff, hash = 0, poff, proto, frag = 0; >> + struct iphdr *ip; >> + u8 ip_proto; >> + u32 addr1, addr2, ihl; >> + u16 snatport = 0, dnatport = 0; >> + union { >> + u32 v32; >> + u16 v16[2]; >> + } ports; >> + >> + nhoff = skb_network_offset(skb); >> + proto = skb->protocol; >> + >> + if (!proto && skb->sk) { >> + if (skb->sk->sk_family == AF_INET) >> + proto = __constant_htons(ETH_P_IP); >> + else if (skb->sk->sk_family == AF_INET6) >> + proto = __constant_htons(ETH_P_IPV6); > >You already have the layer3 protocol number in xt_action_param. No >need to use the socket information then. xt_action_param.family (NFPROTO_) is not the same class af AF_ or ETH_. Though, wouldn't proto = skb->proto; just be simpler here? -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html