Subject: How to route a skb to a particular oif, when the fib_lookup suggests another one.

From: Devesh Agrawal <[email-masked]>
Date: Sat, 26 Mar 2005 11:20:22 +0530

Hi,
I have to route a packet thru a particular output interface, however
my routing tables have two routes, that match it : one to eth0 and one
to wlan0, with the eth0 being chosen as it is more specific.  I am
using ip_route_output_key, with fl->oif = index of device I want this
packet to go (=wlan0).
However, in the ip_route_output_slow I found that even when oif is not
0, you get a valid dev_out, however when the fib_lookup succeeds, you
merely free this old dev_out, and assign dev_out to the res.dev (ie
the one found out by the fib_lookup),
So this means that even if I specify the oif, the packet will still
get routed to eth0.
Am I correct, or is there something I am missing. Also I am setting
tos bit RTO_ONLINK .
Please help me. I am quite perplexed by this.
Sincerely,
--
Devesh Agrawal