Subject: Re: Re: interprocessor communication
To: None <jerry@evasefor.com>
From: Bill Studenmund <wrstuden@netbsd.org>
List: tech-kern
Date: 09/26/2005 10:23:32
--bg08WKrSYDhXBjb5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Sep 24, 2005 at 06:54:01AM +0200, jerry@evasefor.com wrote:
>=20
> drawing it right:
>=20
> phy1-----cpu1=3D=3D=3D=3D=3D=3D=3D=3D[logic]=3D=3D=3D=3D=3D=3D=3D=3D=3Dcp=
u2-------phy2
>            |    mii           mii     |
>           ram                        ram
>=20
>=20
> Simply put it's a router. There is an MII link for both directions=20
> (receive and send).

Are the mii's fast enough to keep up with the data you want to pump=20
through?

> If I write a NIC driver, I can understand how the input (phy1) is going
> to work:
> interupt, callback to device driver, put packet on ipqueue, process it.
> But on the output, out of ip_output() is when I want to forward it to
> cpu2, not back to the interface.
> That's where I am wondering if there is a kernel interface for MII.
> Hopefully my problem is a little bit more clear now.

One thing is that you will have two network interfaces on each CPU, one=20
the NIC and the other the MII. So you create a network driver that throws=
=20
the packet over the MII, then add the MII as an interface. Then whatever=20
you do will make it so the packet goes out the other interface;=20
ip_output() will "know" the next hop is across the mii.

Take care,

Bill

--bg08WKrSYDhXBjb5
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (NetBSD)

iD8DBQFDOC6UWz+3JHUci9cRAjyKAJ9irAx2uEnj9ubPxNvySHuL8aIAxACfdk98
Xl4tobSZNIzHmuxj9mkKZzw=
=mb+G
-----END PGP SIGNATURE-----

--bg08WKrSYDhXBjb5--