Thread (6 messages) 6 messages, 3 authors, 2004-12-31

Re: [PATCH][BRIDGE-NF] Fix wrong use of skb->protocol

From: Bart De Schuymer <hidden>
Date: 2004-12-30 23:10:48

Op do, 30-12-2004 te 23:24 +0100, schreef Lennert Buytenhek:
On Thu, Dec 30, 2004 at 07:55:14PM +0100, Bart De Schuymer wrote:
quoted
ip_sabotage_out() needs to distinguish IPv4 and IPv6 traffic. It
currently does that by looking at skb->protocol. However, for locally
originated packets, skb->protocol is not initialized.
The patch below instead looks at the version number of the packet's
data, which should be 4 or 6.
A while ago there were a number of problems with bridging CIPE ethernet
devices, which turned out to be the bridge code not initialising
skb->protocol for locally originated STP frames.

At the time I was told that initialising skb->protocol for locally
originated packets is required, so that is how I fixed it then.
Hi Lennert,

skb->protocol is not set for locally generated packets when the packet
is still in the IP stack. I don't know what happens with it after the IP
stack is finished with the packet.
The comment in skbuff.h says "packet protocol from driver", from which I
tend to conclude that skb->protocol is only set by drivers when a packet
enters the box. Too bad stuff like this isn't clearly spelled out, the
FIXME for the dst field has been sitting there for probably more than a
year too. Anyway, it wouldn't hurt if the skb->protocol field always
held the right value.

cheers,
Bart
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help