Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Jun 2012 12:53:00 +0000
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        Randall Stewart <rrs@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r236955 - head/sys/net
Message-ID:  <70EDDE72-B9FE-45AB-B3C5-248B95E1E960@lists.zabbadoz.net>
In-Reply-To: <201206121244.q5CCiH4i053940@svn.freebsd.org>
References:  <201206121244.q5CCiH4i053940@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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
>=20
> 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.


>=20
> Modified:
>  head/sys/net/if_gif.c
>=20
> Modified: head/sys/net/if_gif.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- 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 =3D m->m_pkthdr.csum_data;
> +	=09
> 		if (ifp->if_bridge)
> 			af =3D AF_LINK;
>=20
> @@ -503,10 +504,11 @@ gif_output(ifp, m, dst, ro)
> 		dst->sa_family =3D af;
> 	}
> 	af =3D 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 =3D af;
> 	if (!(ifp->if_flags & IFF_UP) ||
> 	    sc->gif_psrc =3D=3D NULL || sc->gif_pdst =3D=3D NULL) {
> 		m_freem(m);

--=20
Bjoern A. Zeeb                                 You have to have visions!
   It does not matter how good you are. It matters what good you do!




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?70EDDE72-B9FE-45AB-B3C5-248B95E1E960>