IPSEC/crypto is broken in FreeBSD/powerpc 7.0-RELEASE!

M. Warner Losh imp at bsdimp.com
Tue Mar 4 14:55:17 PST 2008


In message: <292361ab0803041437t48245090y3db91d2e7d9a0c9b at mail.gmail.com>
            Chargen <chargen at gmail.com> writes:
: On Tue, Mar 4, 2008 at 4:31 PM, M. Warner Losh <imp at bsdimp.com> wrote:
: 
: > digging deeper...
: >
: > The crypto code looks good to me.  It explicitly sets the driver name.
: > Drivers that have a class explicitly set will have that driver's probe
: > called, and only that driver's probe.  In arm, amd64, sparc64, i386
: > and ia64, all of the devices for the nexus routine are added this way,
: > so there's no problem.
: >
: > I think that the real problem is that both 'real' hardware and 'fake'
: > hardware is being attached to the nexus driver for the AIM.  The
: > grackle, uninorth and unin drivers all ask the nexus for their names.
: > That's because they really should be children of a openfirmware device
: > that enumerates these things.  However, since there's now a 'fake'
: > device on nexus that doesn't ask the nexus for its name (since that's
: > not how children of nexus work) there's a problem.
: >
: > So the fix to the problem is to add a layer for the AIM class of
: > machine to attach grackle, uninorth or unin to a ofw device.
: >
: 
: on the topic of IPSEC/Crypto/Cryptodev (soft), is anyone interested in
: testing pr- 120270 (feature request
: http://www.freebsd.org/cgi/query-pr.cgi?pr=120270 ) - because there are
: still some features missing like AES-192/256 hardware support

There seems to be a number of changes swizzled together in the diff in
this PR.  Things like:

 #if defined(__OpenBSD__) || defined(__FreeBSD__)
-        ENGINE_load_cryptodev();
+#define HAVE_CRYPTODEV
 #endif
 #endif
+#ifdef HAVE_CRYPTODEV
+        ENGINE_load_cryptodev();
+#endif
 
and then later

 void *ENGINE_get_static_state(void);
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
+#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV)
 void ENGINE_setup_bsd_cryptodev(void);

and the like.

Warner


More information about the freebsd-current mailing list