2.4 - net/ipv4/route.c/ip_route_output_slow()

From: Innocenti Maresin
Date: Sun Aug 13 2006 - 12:16:09 EST

Ok, my dear kernel coding gurus.
You have almost nothing to say about "internal IP addresses" and "connect() failures".
Let me swicth the question's language :)
Please, help with the function ip_route_output_slow() in net/ipv4/route.c.
There is such code as:
if (res.type == RTN_NAT)
goto e_inval;

In late 2.4 it is line 1922 (2.6 is irrelevant because of elimination of RTN_NAT).
I realize that this condition means, at least, an explicit ban
on all attempts to use RTN_NATted destination addresses in connect(),
so the kernel fails before the process (or the transport level) attempts to send any packet.
Please, tell me, what value should return this function by design
and what is the difference between it and a similar situation in ip_route_input_slow()
where fib_rules_map_destination() is called instead of just failing.
For what reasons (religious, I think) locally generated packets
may not be RTN_NATted in a manner similar to the routing of forwarding traffic?

Thank you for your attention.

/ /\ \
\ /_/ /
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/