From 210db2243d3b5ca39c96a4c34c6d9453ddfbeaa9 Mon Sep 17 00:00:00 2001 From: ericheng Date: Mon, 1 Aug 2005 12:58:24 -0700 Subject: PSARC 2005/365 Nemo drivers interface simplification 6246540 race condition between aggr driver detach and create-aggr 6253542 dld breaks autopush, PPPoE, ipfilter for bge and xge 6261226 Nemo should use modhash 6272908 in.rarpd no longer works for GLDv3 interfaces 6303082 ill_tx fastpath lacks flow control --HG-- rename : usr/src/cmd/dladm/datalink.conf => deleted_files/usr/src/cmd/dladm/datalink.conf rename : usr/src/cmd/rcm_daemon/common/mac_rcm.c => deleted_files/usr/src/cmd/rcm_daemon/common/mac_rcm.c rename : usr/src/cmd/svc/milestone/aggregation => deleted_files/usr/src/cmd/svc/milestone/aggregation rename : usr/src/cmd/svc/milestone/aggregation.xml => deleted_files/usr/src/cmd/svc/milestone/aggregation.xml rename : usr/src/cmd/svc/milestone/datalink => deleted_files/usr/src/cmd/svc/milestone/datalink rename : usr/src/cmd/svc/milestone/datalink-init => deleted_files/usr/src/cmd/svc/milestone/datalink-init rename : usr/src/cmd/svc/milestone/datalink-init.xml => deleted_files/usr/src/cmd/svc/milestone/datalink-init.xml rename : usr/src/cmd/svc/milestone/datalink.xml => deleted_files/usr/src/cmd/svc/milestone/datalink.xml rename : usr/src/pkgdefs/SUNWcnetr/postinstall => deleted_files/usr/src/pkgdefs/SUNWcnetr/postinstall rename : usr/src/pkgdefs/common_files/i.datalinkconf => deleted_files/usr/src/pkgdefs/common_files/i.datalinkconf rename : usr/src/uts/common/io/dld/dld_ioc.c => deleted_files/usr/src/uts/common/io/dld/dld_ioc.c rename : usr/src/uts/common/io/dld/dld_minor.c => deleted_files/usr/src/uts/common/io/dld/dld_minor.c rename : usr/src/uts/common/io/dld/dld_node.c => deleted_files/usr/src/uts/common/io/dld/dld_node.c rename : usr/src/uts/common/io/dld/dld_ppa.c => deleted_files/usr/src/uts/common/io/dld/dld_ppa.c rename : usr/src/uts/common/os/ght.c => deleted_files/usr/src/uts/common/os/ght.c rename : usr/src/uts/common/sys/ght.h => deleted_files/usr/src/uts/common/sys/ght.h rename : usr/src/uts/intel/ght/Makefile => deleted_files/usr/src/uts/intel/ght/Makefile rename : usr/src/uts/sparc/ght/Makefile => deleted_files/usr/src/uts/sparc/ght/Makefile --- usr/src/cmd/devfsadm/devfsadm.c | 110 +- usr/src/cmd/dladm/Makefile | 2 +- usr/src/cmd/dladm/datalink.conf | 31 - usr/src/cmd/dladm/dladm.c | 541 ++----- usr/src/cmd/rcm_daemon/Makefile.com | 13 +- usr/src/cmd/rcm_daemon/common/ip_rcm.c | 47 +- usr/src/cmd/rcm_daemon/common/mac_rcm.c | 1446 ------------------ usr/src/cmd/rcm_daemon/common/network_rcm.c | 105 +- usr/src/cmd/svc/milestone/Makefile | 6 - usr/src/cmd/svc/milestone/aggregation | 40 - usr/src/cmd/svc/milestone/aggregation.xml | 73 - usr/src/cmd/svc/milestone/datalink | 37 - usr/src/cmd/svc/milestone/datalink-init | 44 - usr/src/cmd/svc/milestone/datalink-init.xml | 83 -- usr/src/cmd/svc/milestone/datalink.xml | 88 -- usr/src/cmd/svc/milestone/net-physical | 5 + usr/src/cmd/svc/seed/Makefile | 5 - usr/src/cmd/truss/codes.c | 8 +- usr/src/lib/Makefile | 2 +- usr/src/lib/libdladm/common/libdladm.c | 589 +------- usr/src/lib/libdladm/common/libdladm.h | 34 +- usr/src/lib/libdladm/spec/dladm.spec | 48 +- usr/src/lib/libdlpi/common/libdlpi.c | 6 - usr/src/lib/liblaadm/common/liblaadm.c | 89 +- usr/src/lib/libmacadm/Makefile.com | 2 +- usr/src/lib/libmacadm/common/libmacadm.c | 31 +- usr/src/lib/libmacadm/common/libmacadm.h | 2 +- usr/src/lib/libmacadm/spec/macadm.spec | 2 +- usr/src/pkgdefs/SUNWckr/prototype_i386 | 2 - usr/src/pkgdefs/SUNWckr/prototype_sparc | 1 - usr/src/pkgdefs/SUNWcnetr/Makefile | 4 +- usr/src/pkgdefs/SUNWcnetr/pkginfo.tmpl | 2 +- usr/src/pkgdefs/SUNWcnetr/postinstall | 46 - usr/src/pkgdefs/SUNWcnetr/prototype_com | 3 - usr/src/pkgdefs/SUNWcsr/postinstall | 26 + usr/src/pkgdefs/SUNWcsr/prototype_com | 6 - usr/src/pkgdefs/SUNWcsu/prototype_com | 1 - usr/src/pkgdefs/SUNWhea/prototype_com | 1 - usr/src/pkgdefs/common_files/i.datalinkconf | 69 - usr/src/tools/scripts/bfu.sh | 113 +- usr/src/uts/common/Makefile.files | 5 +- usr/src/uts/common/inet/ip.h | 2 +- usr/src/uts/common/inet/tcp/tcp.c | 10 +- usr/src/uts/common/io/aggr/aggr_ctl.c | 258 ++-- usr/src/uts/common/io/aggr/aggr_dev.c | 148 +- usr/src/uts/common/io/aggr/aggr_grp.c | 171 ++- usr/src/uts/common/io/bge/bge_main.c | 43 +- usr/src/uts/common/io/dld/dld_drv.c | 384 ++--- usr/src/uts/common/io/dld/dld_ioc.c | 396 ----- usr/src/uts/common/io/dld/dld_minor.c | 113 -- usr/src/uts/common/io/dld/dld_node.c | 544 ------- usr/src/uts/common/io/dld/dld_ppa.c | 373 ----- usr/src/uts/common/io/dld/dld_proto.c | 2110 +++++++++++++-------------- usr/src/uts/common/io/dld/dld_str.c | 1211 ++++++++++----- usr/src/uts/common/io/dls/dls.c | 11 +- usr/src/uts/common/io/dls/dls_link.c | 463 +++--- usr/src/uts/common/io/dls/dls_mod.c | 1 - usr/src/uts/common/io/dls/dls_stat.c | 1 - usr/src/uts/common/io/dls/dls_vlan.c | 241 ++- usr/src/uts/common/io/mac/mac.c | 274 ++-- usr/src/uts/common/io/strplumb.c | 70 +- usr/src/uts/common/os/ght.c | 527 ------- usr/src/uts/common/sys/Makefile | 1 - usr/src/uts/common/sys/aggr.h | 7 +- usr/src/uts/common/sys/aggr_impl.h | 10 +- usr/src/uts/common/sys/dld.h | 47 +- usr/src/uts/common/sys/dld_impl.h | 209 +-- usr/src/uts/common/sys/dls.h | 9 +- usr/src/uts/common/sys/dls_impl.h | 20 +- usr/src/uts/common/sys/ght.h | 90 -- usr/src/uts/common/sys/mac.h | 4 + usr/src/uts/common/sys/mac_impl.h | 2 - usr/src/uts/intel/Makefile.intel | 1 - usr/src/uts/intel/aggr/Makefile | 2 +- usr/src/uts/intel/bge/Makefile | 2 +- usr/src/uts/intel/dld/Makefile | 2 +- usr/src/uts/intel/dls/Makefile | 2 +- usr/src/uts/intel/ght/Makefile | 82 -- usr/src/uts/intel/ia32/ml/modstubs.s | 18 +- usr/src/uts/intel/mac/Makefile | 2 +- usr/src/uts/sparc/Makefile.sparc | 2 +- usr/src/uts/sparc/aggr/Makefile | 2 +- usr/src/uts/sparc/dld/Makefile | 2 +- usr/src/uts/sparc/dls/Makefile | 2 +- usr/src/uts/sparc/ght/Makefile | 84 -- usr/src/uts/sparc/mac/Makefile | 2 +- usr/src/uts/sparc/ml/modstubs.s | 18 +- 87 files changed, 3420 insertions(+), 8321 deletions(-) delete mode 100644 usr/src/cmd/dladm/datalink.conf delete mode 100644 usr/src/cmd/rcm_daemon/common/mac_rcm.c delete mode 100644 usr/src/cmd/svc/milestone/aggregation delete mode 100644 usr/src/cmd/svc/milestone/aggregation.xml delete mode 100644 usr/src/cmd/svc/milestone/datalink delete mode 100644 usr/src/cmd/svc/milestone/datalink-init delete mode 100644 usr/src/cmd/svc/milestone/datalink-init.xml delete mode 100644 usr/src/cmd/svc/milestone/datalink.xml delete mode 100644 usr/src/pkgdefs/SUNWcnetr/postinstall delete mode 100644 usr/src/pkgdefs/common_files/i.datalinkconf delete mode 100644 usr/src/uts/common/io/dld/dld_ioc.c delete mode 100644 usr/src/uts/common/io/dld/dld_minor.c delete mode 100644 usr/src/uts/common/io/dld/dld_node.c delete mode 100644 usr/src/uts/common/io/dld/dld_ppa.c delete mode 100644 usr/src/uts/common/os/ght.c delete mode 100644 usr/src/uts/common/sys/ght.h delete mode 100644 usr/src/uts/intel/ght/Makefile delete mode 100644 usr/src/uts/sparc/ght/Makefile (limited to 'usr/src') diff --git a/usr/src/cmd/devfsadm/devfsadm.c b/usr/src/cmd/devfsadm/devfsadm.c index 1017ed31df..152d3f6390 100644 --- a/usr/src/cmd/devfsadm/devfsadm.c +++ b/usr/src/cmd/devfsadm/devfsadm.c @@ -1936,7 +1936,7 @@ check_minor_type(di_node_t node, di_minor_t minor, void *arg) if ((dcip->dci_flags & DCA_CHECK_TYPE) && (nt = di_minor_nodetype(minor)) && - (strcmp(nt, DDI_NT_NET) == 0 || strcmp(nt, DDI_NT_MAC) == 0)) { + (strcmp(nt, DDI_NT_NET) == 0)) { dcip->dci_flags |= DCA_NOTIFY_RCM; dcip->dci_flags &= ~DCA_CHECK_TYPE; } @@ -7589,83 +7589,15 @@ lookup_nvpair(nvlist_t *nvl, char *name, data_type_t type) return (NULL); } -/* - * Send the specified event to RCM if the given nvlist contains a minor - * node of the specified type. - */ -static void -notify_event(nvlist_t *nvl, char *minor_node_type, char *event) -{ - nvpair_t *nvp, *mnvp; - char *path, *driver, *type; - int instance; - int err; - boolean_t do_notify = B_FALSE; - uint_t nminor; - char *minor_byte_array; - nvlist_t *mnvl; - - nvp = NULL; - while (!do_notify && ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL)) { - if (strcmp(nvpair_name(nvp), RCM_NV_MINOR_DATA) != 0) - continue; - if (nvpair_value_byte_array(nvp, - (uchar_t **)&minor_byte_array, &nminor) != 0) - goto error; - if (nvlist_unpack(minor_byte_array, - nminor, &mnvl, 0) != 0) - goto error; - - mnvp = NULL; - while (!do_notify && - ((mnvp = nvlist_next_nvpair(mnvl, mnvp)) != NULL)) { - if (strcmp(nvpair_name(mnvp), - RCM_NV_MINOR_NODE_TYPE) == 0) { - if (nvpair_value_string(mnvp, &type) != 0) { - nvlist_free(mnvl); - goto error; - } - do_notify = (strcmp(type, - minor_node_type) == 0); - } - } - - nvlist_free(mnvl); - } - - if (!do_notify) - return; - - if (librcm_notify_event(rcm_hdl, event, 0, nvl, NULL) == RCM_SUCCESS) - return; - -error: - err = errno; - - if (((nvp = lookup_nvpair(nvl, - RCM_NV_DEVFS_PATH, DATA_TYPE_STRING)) == NULL) || - (nvpair_value_string(nvp, &path) != 0)) - path = "unknown"; - - if (((nvp = lookup_nvpair(nvl, - RCM_NV_DRIVER_NAME, DATA_TYPE_STRING)) == NULL) || - (nvpair_value_string(nvp, &driver) != 0)) - driver = "unknown"; - - if (((nvp = lookup_nvpair(nvl, - RCM_NV_INSTANCE, DATA_TYPE_INT32)) == NULL) || - (nvpair_value_int32(nvp, &instance) != 0)) - instance = -1; - - err_print(RCM_NOTIFY_FAILED, path, driver, - instance, strerror(err)); -} - /*ARGSUSED*/ static void process_rcm_events(void *arg) { struct rcm_eventq *ev, *ev_next; + nvpair_t *nvp; + char *path, *driver; + int instance; + int err; int need_to_exit; for (;;) { @@ -7686,12 +7618,32 @@ process_rcm_events(void *arg) * we do not know whether the failure occurred in * librcm, rcm_daemon or rcm modules or scripts. */ - - notify_event(ev->nvl, DDI_NT_NET, - RCM_RESOURCE_NETWORK_NEW); - - notify_event(ev->nvl, DDI_NT_MAC, - RCM_RESOURCE_MAC_NEW); + if (librcm_notify_event(rcm_hdl, + RCM_RESOURCE_NETWORK_NEW, 0, ev->nvl, NULL) + != RCM_SUCCESS) { + + err = errno; + + if (((nvp = lookup_nvpair(ev->nvl, + RCM_NV_DEVFS_PATH, DATA_TYPE_STRING)) + == NULL) || + (nvpair_value_string(nvp, &path) != 0)) + path = "unknown"; + + if (((nvp = lookup_nvpair(ev->nvl, + RCM_NV_DRIVER_NAME, DATA_TYPE_STRING)) + == NULL) || + (nvpair_value_string(nvp, &driver) != 0)) + driver = "unknown"; + if (((nvp = lookup_nvpair(ev->nvl, + RCM_NV_INSTANCE, DATA_TYPE_INT32)) + == NULL) || + (nvpair_value_int32(nvp, &instance) != 0)) + instance = -1; + + err_print(RCM_NOTIFY_FAILED, path, driver, + instance, strerror(err)); + } ev_next = ev->next; nvlist_free(ev->nvl); diff --git a/usr/src/cmd/dladm/Makefile b/usr/src/cmd/dladm/Makefile index ae3f9167e4..0923fece9c 100644 --- a/usr/src/cmd/dladm/Makefile +++ b/usr/src/cmd/dladm/Makefile @@ -29,7 +29,7 @@ PROG= dladm ROOTFS_PROG= $(PROG) -CONFIGFILES= datalink.conf aggregation.conf +CONFIGFILES= aggregation.conf POFILE= $(PROG).po diff --git a/usr/src/cmd/dladm/datalink.conf b/usr/src/cmd/dladm/datalink.conf deleted file mode 100644 index 5cb5189578..0000000000 --- a/usr/src/cmd/dladm/datalink.conf +++ /dev/null @@ -1,31 +0,0 @@ -# -# CDDL HEADER START -# -# The contents of this file are subject to the terms of the -# Common Development and Distribution License, Version 1.0 only -# (the "License"). You may not use this file except in compliance -# with the License. -# -# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE -# or http://www.opensolaris.org/os/licensing. -# See the License for the specific language governing permissions -# and limitations under the License. -# -# When distributing Covered Code, include this CDDL HEADER in each -# file and include the License file at usr/src/OPENSOLARIS.LICENSE. -# If applicable, add the following below this CDDL HEADER, with the -# fields enclosed by brackets "[]" replaced with your own identifying -# information: Portions Copyright [yyyy] [name of copyright owner] -# -# CDDL HEADER END -# -# -# Copyright 2005 Sun Microsystems, Inc. All rights reserved. -# Use is subject to license terms. -# -# ident "%Z%%M% %I% %E% SMI" -# -# DO NOT EDIT OR PARSE THIS FILE! -# -# Use the dladm(1m) command to change the contents of this file. - diff --git a/usr/src/cmd/dladm/dladm.c b/usr/src/cmd/dladm/dladm.c index 404a1c3e92..f74eab440c 100644 --- a/usr/src/cmd/dladm/dladm.c +++ b/usr/src/cmd/dladm/dladm.c @@ -96,11 +96,7 @@ static port_state_t port_states[] = { #define NPORTSTATES (sizeof (port_states) / sizeof (port_state_t)) -static void do_create_vlan(int, char **); -static void do_delete_vlan(int, char **); static void do_show_link(int, char **); -static void do_up_link(int, char **); -static void do_init_link(int, char **); static void do_create_aggr(int, char **); static void do_delete_aggr(int, char **); static void do_add_aggr(int, char **); @@ -129,11 +125,8 @@ typedef struct cmd { } cmd_t; static cmd_t cmds[] = { - { "create-vlan", do_create_vlan }, - { "delete-vlan", do_delete_vlan }, { "show-link", do_show_link }, - { "up-link", do_up_link }, - { "init-link", do_init_link }, + { "show-dev", do_show_dev }, { "create-aggr", do_create_aggr }, { "delete-aggr", do_delete_aggr }, @@ -142,9 +135,7 @@ static cmd_t cmds[] = { { "modify-aggr", do_modify_aggr }, { "show-aggr", do_show_aggr }, { "up-aggr", do_up_aggr }, - { "down-aggr", do_down_aggr }, - - { "show-dev", do_show_dev } + { "down-aggr", do_down_aggr } }; static const struct option longopts[] = { @@ -176,9 +167,7 @@ static void usage(void) { (void) fprintf(stderr, gettext( - "usage: dladm create-vlan [-t] [-R ] -v -d \n" - " delete-vlan [-t] [-R ] -v -d \n" - " create-aggr [-t] [-R ] [-P ]\n" + "usage: dladm create-aggr [-t] [-R ] [-P ]\n" " [-l ] [-T