--- zzzz-none-000/linux-2.4.17/net/ipv4/route.c 2001-12-21 17:42:05.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/net/ipv4/route.c 2004-11-24 13:22:09.000000000 +0000 @@ -5,7 +5,7 @@ * * ROUTE - implementation of the IP router. * - * Version: $Id: route.c,v 1.102 2001/10/31 21:55:54 davem Exp $ + * Version: $Id: route.c,v 1.2 2003/12/04 18:28:11 mhassler Exp $ * * Authors: Ross Biro, * Fred N. van Kempen, @@ -1188,7 +1188,12 @@ memcpy(&rt->u.dst.mxlock, fi->fib_metrics, sizeof(fi->fib_metrics)); if (fi->fib_mtu == 0) { +#ifdef CONFIG_NET_SCH_PRIOWRR + rt->u.dst.pmtu = (rt->u.dst.dev->unused_alignment_fixer == 0) ? rt->u.dst.dev->mtu : + min(rt->u.dst.dev->mtu, rt->u.dst.dev->unused_alignment_fixer); +#else rt->u.dst.pmtu = rt->u.dst.dev->mtu; +#endif if (rt->u.dst.mxlock & (1 << RTAX_MTU) && rt->rt_gateway != rt->rt_dst && rt->u.dst.pmtu > 576) @@ -1198,7 +1203,12 @@ rt->u.dst.tclassid = FIB_RES_NH(*res).nh_tclassid; #endif } else +#ifdef CONFIG_NET_SCH_PRIOWRR + rt->u.dst.pmtu = (rt->u.dst.dev->unused_alignment_fixer == 0) ? rt->u.dst.dev->mtu : + min(rt->u.dst.dev->mtu, rt->u.dst.dev->unused_alignment_fixer); +#else rt->u.dst.pmtu = rt->u.dst.dev->mtu; +#endif if (rt->u.dst.pmtu > IP_MAX_MTU) rt->u.dst.pmtu = IP_MAX_MTU; @@ -1451,6 +1461,9 @@ goto e_inval; } +#ifdef CONFIG_NET_CLS_U32 + out_dev->dev->if_port = dev->if_port; +#endif rth = dst_alloc(&ipv4_dst_ops); if (!rth) goto e_nobufs;