[PATCH 1/2] xt_u32 (kernel) - match arbitrary bits and bytes of
a packet
Jan Engelhardt
jengelh at linux01.gwdg.de
Tue Jun 5 09:07:23 CEST 2007
Hi,
On Jun 3 2007 19:23, Patrick McHardy wrote:
>Also
>
> u_int32_t min;
> u_int32_t max;
>
>please (and everywhere else of course).
Might get a bit verbose.
Question:
ipt_u32/xt_u32 uses a spinlock_bh to protect the buffer to which a packet
is copied to before analyzing.
>> + spin_lock_bh(&xt_u32_lock);
>> +
>> + head = skb_header_pointer(skb, 0, min(skb->len,
>> + sizeof(xt_u32_buffer)), xt_u32_buffer);
I'd like to hear opinions about:
* open coding skb_header_pointer
In the "hlen - offset >= len" case in skb_header_pointer(), it just
returns a pointer to the existing skb without copying, in which
case we would not need to take a lock at all.
* use percpu buffers, with or without opencoding skb_header_pointer
so that cpus/threads do not have to wait for another -m u32 to finish.
Jan
--
More information about the netfilter-devel
mailing list