On Thu, Jul 02, 2015 at 03:07:37PM +0200, Martin Pieuchot wrote:
> On 02/07/15(Thu) 13:57, Sebastien Marie wrote:
> >
> > The message is printed for every packet sent from rdomain 52
> > $ route -T 52 exec ping 192.168.52.1 
> > PING 192.168.52.1 (192.168.52.1): 56 data bytes
> > --- 192.168.52.1 ping statistics ---
> > 2 packets transmitted, 0 packets received, 100.0% packet loss
> > 
> > $ dmesg | tail -2
> > bge0: trying to send packet on wrong domain. if 0 vs. mbuf 52
> > bge0: trying to send packet on wrong domain. if 0 vs. mbuf 52
> > 
> > No other problem than a message in console for every packet.
> > 
> 
> Well I made a mistake, thanks for spotting it.  Here's a revert diff:

diff tested. it resolves the problem.
OK semarie@

thanks for the quick answer

> Index: net/if.c
> ===================================================================
> RCS file: /cvs/src/sys/net/if.c,v
> retrieving revision 1.348
> diff -u -p -r1.348 if.c
> --- net/if.c  2 Jul 2015 09:40:02 -0000       1.348
> +++ net/if.c  2 Jul 2015 13:02:13 -0000
> @@ -447,14 +447,6 @@ if_enqueue(struct ifnet *ifp, struct mbu
>       int s, length, error = 0;
>       unsigned short mflags;
>  
> -#ifdef DIAGNOSTIC
> -     if (ifp->if_rdomain != rtable_l2(m->m_pkthdr.ph_rtableid)) {
> -             printf("%s: trying to send packet on wrong domain. "
> -                 "if %d vs. mbuf %d\n", ifp->if_xname, ifp->if_rdomain,
> -                 rtable_l2(m->m_pkthdr.ph_rtableid));
> -     }
> -#endif
> -
>  #if NBRIDGE > 0
>       if (ifp->if_bridgeport && (m->m_flags & M_PROTO1) == 0)
>               return (bridge_output(ifp, m, NULL, NULL));
> Index: net/if_ethersubr.c
> ===================================================================
> RCS file: /cvs/src/sys/net/if_ethersubr.c,v
> retrieving revision 1.214
> diff -u -p -r1.214 if_ethersubr.c
> --- net/if_ethersubr.c        2 Jul 2015 09:40:02 -0000       1.214
> +++ net/if_ethersubr.c        2 Jul 2015 13:05:06 -0000
> @@ -176,6 +176,14 @@ ether_output(struct ifnet *ifp, struct m
>       struct arpcom *ac = (struct arpcom *)ifp;
>       int error = 0;
>  
> +#ifdef DIAGNOSTIC
> +     if (ifp->if_rdomain != rtable_l2(m->m_pkthdr.ph_rtableid)) {
> +             printf("%s: trying to send packet on wrong domain. "
> +                 "if %d vs. mbuf %d\n", ifp->if_xname,
> +                 ifp->if_rdomain, rtable_l2(m->m_pkthdr.ph_rtableid));
> +     }
> +#endif
> +
>       esrc = ac->ac_enaddr;
>  
>       if ((ifp->if_flags & (IFF_UP|IFF_RUNNING)) != (IFF_UP|IFF_RUNNING))

-- 
Sebastien Marie

Reply via email to