Project

General

Profile

Actions

Bug #14768

closed

retire nca

Added by Garrett D'Amore about 2 months ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Category:
-
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The network cache accelerator (NCA) is an idea whose time has come, and gone.

The idea is to offload serving web pages to the kernel, because moving data between user and kernel space used to be very expensive in the Solaris 8 days.

This interface was used by the old Netscape / SunOne web server stack, but it was never documented for others to use. Additionally, these days it's impossible to use it securely because of kssl limitations, and it does not run in a local zone. The presence of sendfile(), along with improvements in the TCP/IP and STREAMs stack made as part of the Solaris 10 Fire Engine project basically eliminated the need for the NCA design.

I know of nobody using this anymore (and nobody who has used in the illumos timeframe or with illumos -- again it's a Solaris 8 legacy thing), and frankly nobody should use it because there are better ways to move data now.

We should go ahead and discard this.


Related issues

Related to illumos gate - Bug #14767: retire ksslClosedGarrett D'Amore

Actions
Related to illumos gate - Bug #14808: removal of nca (14768) missed the headersClosedGarrett D'Amore

Actions
Actions #2

Updated by Dan McDonald about 2 months ago

Actions #3

Updated by Electric Monk about 1 month ago

  • Gerrit CR set to 2216
Actions #4

Updated by Garrett D'Amore about 1 month ago

Testing was booting this change applied to omniOS (151040) and testing basic networking (curl, ssh both inbound and outbound), followed by verification that socks did not have any references to NCA anymore.

The man page changes were tested by inspecting the content.

Actions #5

Updated by Garrett D'Amore about 1 month ago

  • Status changed from New to Pending RTI
  • % Done changed from 0 to 90
Actions #6

Updated by Garrett D'Amore about 1 month ago

I've also done some more testing:

The socks test suite in os-tests:

Test: /opt/os-tests/tests/sockfs/conn (run as root) [00:05] [PASS]
Test: /opt/os-tests/tests/sockfs/dgram (run as root) [00:05] [PASS]
Test: /opt/os-tests/tests/sockfs/drop_priv (run as root) [00:07] [PASS]
Test: /opt/os-tests/tests/sockfs/nosignal (run as root) [00:02] [PASS]
Test: /opt/os-tests/tests/sockfs/rights.32 (run as root) [00:00] [PASS]
Test: /opt/os-tests/tests/sockfs/rights.64 (run as root) [00:00] [PASS]
Test: /opt/os-tests/tests/sockfs/sockpair (run as root) [00:10] [PASS]
Test: /opt/os-tests/tests/sockfs/recvmsg.32 (run as root) [00:00] [PASS]
Test: /opt/os-tests/tests/sockfs/recvmsg.64 (run as root) [00:00] [PASS]

I also ran "macat" (see GitHub.com/nanomsg/mangos) using UNIX domain sockets to ensure that they worked (server and client using multiple round trip RPCs.)

I did some loopback testing over IPv6 as well (ssh to ::1)

It appears that Robert Mustacchi also did some testing in his word:

So the way that this works is that for all socket module types, the
mapping is populated by soconfig(8). This is invoked both by init(8) and
some of the other services like devices-local. I've gone and basically
rigged this up. None of this is specific to NCA at all.

Issues that are found in the persistent files here are ignored when
invoked in the way that init and others do when scanning the directory
it looks like. So this means that we aren't going to get a sudden error
during boot with folks who have an entry for NCA here, but not removed.

So I think we're ok in this particular case and have tested that for you.

Actions #7

Updated by Electric Monk about 1 month ago

  • Status changed from Pending RTI to Closed
  • % Done changed from 90 to 100

git commit 15f90b02bdacbf0ae47fa105944f15b6596f9748

commit  15f90b02bdacbf0ae47fa105944f15b6596f9748
Author: Garrett D'Amore <garrett@damore.org>
Date:   2022-07-11T22:59:59.000Z

    14768 retire nca
    Reviewed by: Peter Tribble <peter.tribble@gmail.com>
    Reviewed by: Andy Fiddaman <andy@omnios.org>
    Reviewed by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
    Approved by: Robert Mustacchi <rm@fingolfin.org>

Actions #8

Updated by Dan McDonald about 1 month ago

  • Related to Bug #14808: removal of nca (14768) missed the headers added
Actions

Also available in: Atom PDF