On 12. Jun 2012, at 12:44 , Randall Stewart wrote: > Author: rrs > Date: Tue Jun 12 12:44:17 2012 > New Revision: 236955 > URL: http://svn.freebsd.org/changeset/base/236955 > > Log: > Note to self. Have morning coffee *before* committing things. > There is no mac_addr in the mbuf for BSD.. cheat like > we are supposed to and use the csum field since our friend > the gif tunnel itself will never use offload.
There are cards that can do checksums for IPIP... with drivers in out tree. > > Modified: > head/sys/net/if_gif.c > > Modified: head/sys/net/if_gif.c > ============================================================================== > --- head/sys/net/if_gif.c Tue Jun 12 12:40:15 2012 (r236954) > +++ head/sys/net/if_gif.c Tue Jun 12 12:44:17 2012 (r236955) > @@ -388,7 +388,8 @@ keep_going: > /* Now pull back the af in packet that > * was saved in the address location. > */ > - bcopy(m->m_pkthdr.src_mac_addr, &af, sizeof(af)); > + af = m->m_pkthdr.csum_data; > + > if (ifp->if_bridge) > af = AF_LINK; > > @@ -503,10 +504,11 @@ gif_output(ifp, m, dst, ro) > dst->sa_family = af; > } > af = dst->sa_family; > - /* Now save the af in the inbound pkt mac > - * address location. > + /* Now save the af in the inbound pkt csum > + * data, this is a cheat since really > + * gif tunnels don't do offload. > */ > - bcopy(&af, m->m_pkthdr.src_mac_addr, sizeof(af)); > + m->m_pkthdr.csum_data = af; > if (!(ifp->if_flags & IFF_UP) || > sc->gif_psrc == NULL || sc->gif_pdst == NULL) { > m_freem(m); -- Bjoern A. Zeeb You have to have visions! It does not matter how good you are. It matters what good you do! _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"