README revision da14cebe459d3275048785f25bd869cb09b5307f
1N/A#
1N/A# CDDL HEADER START
1N/A#
1N/A# The contents of this file are subject to the terms of the
1N/A# Common Development and Distribution License (the "License").
1N/A# You may not use this file except in compliance with the License.
1N/A#
1N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1N/A# or http://www.opensolaris.org/os/licensing.
1N/A# See the License for the specific language governing permissions
1N/A# and limitations under the License.
1N/A#
1N/A# When distributing Covered Code, include this CDDL HEADER in each
1N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1N/A# If applicable, add the following below this CDDL HEADER, with the
1N/A# fields enclosed by brackets "[]" replaced with your own identifying
1N/A# information: Portions Copyright [yyyy] [name of copyright owner]
1N/A#
1N/A# CDDL HEADER END
1N/A#
1N/A
1N/A#
1N/A# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
1N/A# Use is subject to license terms.
1N/A#
1N/A#
1N/A
1N/AThis README describes the organization of the files and subdirectories
1N/Athat make up the misc/mac module.
1N/A
1N/AChanges to the sources should follow the layout and naming conventions
1N/Aadopted herein.
1N/A
1N/AEach functional component of the mac module is implemented in a separate
1N/Asource file. The external interfaces are declared in header files delivered
1N/Aunder <sys>. The internal data structures and definitions are declared
1N/Ain header files internal to this directory.
1N/A
1N/A. Client Interface
1N/A This is the kernel programming interface for accessing L2 services as
1N/A a consumer.
1N/A . mac_client.c
1N/A . sys/mac_client.h: APIs intended for external MAC consumers
1N/A . sys/mac_client_priv.h: APIs for GLDv3 components only (dld,
1N/A dls, aggr, vnic, etc).
1N/A . mac_client_impl.h Internals.
1N/A
1N/A. Provider Interface
1N/A This is the GLDv3 kernel driver interface. Functions and data structures
1N/A are used by L2 drivers to provide services to MAC consumers.
1N/A . mac_provider.c
1N/A . sys/mac_provider.h
1N/A
1N/A. MAC Type Plugins
1N/A The GLDv3 L2 supports multiple types of media control. Each type is
1N/A implemented as a plugin delivered in a separate file under the
1N/A plugin/ directory.
1N/A Add a new file to the plugin/ directory for introducing a new MAC type.
1N/A
1N/A. Core Component.
1N/A - Scheduling Engine:
1N/A . mac_datapath_setup.c: Control path for the scheduler.
1N/A . mac_soft_ring.c,
1N/A mac_soft_ring.h: Fanout Soft Rings.
1N/A . mac_sched.c: Data path
1N/A . mac_bcast.c Data path and switching for broadcast and
1N/A multicast packets.
1N/A . mac_stat.c: Statistics
1N/A
1N/A - Classification Engine
1N/A mac_flow.c: Flows and software classification:
1N/A
1N/A - NICs Resources Management
1N/A . mac.c (this file also has other miscelanea)
. Misc
. mac.c
. mac_util.c
. mac_ndd.c