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