Hello Yordan,
On Thu, Jan 04, 2001 at 04:20:43PM +0100, yal wrote:
> Hello everyone,
>
> I find something strange in mpls-linux code.
>
> In 'mpls_output' function is labeled every packet,
> independent from the protocol including the
> ARP request or replay packets.
> I think this is error because we can not update
> ARP table and ....
I'm not sure I follow you. Are you reporting that you have seen
ARP packets with a label on them, or are you reporting that you think
the code will allow for ARP packet to be labeled.
If you are reporting seeing labeled arp packet please describe how
you were able to accomplish this, because it certainly would be a bug.
If you are saying that the code would allow ARP packets to be labeled, I would
disagree. The only way a packet gets to mpls_output is via mpls_input or
via the output function pointer in a dst_entry. A dst_entry is what gets
created from the info return in a ARP reply. Right now the only protocol that
sets the dst_entry output function to be mpls_output is IPv4
(route.c:rt_set_nexthop())
> I'm sorry if I've misunderstood something!
Maybe your seeing the output message (mpls_output: unknown protocol ....)
This is not what your thinking. What has happened is that an sk_buff has been
re-used. The IPv4 stack is lazy and didn't set skb->protocol. So the value
is left over from the last protocol that used the sk_buff.
>
> Yordan.
Jim
--
James R. Leu
|