David Young wrote:
Why is there MPLS code in ip_output.c? I don't think that it belongs. IP input/output routines are complicated enough as it is. ISTM, MPLS should look to IP like any other link-layer.
Hi,Well, I need to check if the destination family is AF_MPLS and prepend shim in this case. Am I missing something ?
Is it strictly necessary to wrap the #includes in an #ifdef like this? +#ifdef MPLS +#include <netmpls/mpls.h> +#include <netmpls/mpls_var.h> +#endif /* MPLS */
I don't know. Is the #include part only that is disturbing ? I've seen the same syntax is used for {FAST_}IPSEC case.
Also, in ip_output.c, is this really right? - * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. + * Copyright (C) 1995 - 2001 AYAME Project, WIDE Project.
No, there is a whole licensing mess that I will fix before anything else.
It is not very desirable for MPLS to disable fast-forwarding. Why is
it necessary?
-#if defined(IPSEC)
- /* ipflow (IP fast forwarding) is not compatible with IPsec. */
+#if defined(IPSEC) || defined(MPLS)
+ /* ipflow (IP fast forwarding) is not compatible with IPsec nor MPLS. */
m->m_flags &= ~M_CANFASTFWD;
#else
I wanted output to be done via ip_output() for the above reasons.
Dave
-- Thanks, Mihai