1*da14cebeSEric Cheng# 2*da14cebeSEric Cheng# CDDL HEADER START 3*da14cebeSEric Cheng# 4*da14cebeSEric Cheng# The contents of this file are subject to the terms of the 5*da14cebeSEric Cheng# Common Development and Distribution License (the "License"). 6*da14cebeSEric Cheng# You may not use this file except in compliance with the License. 7*da14cebeSEric Cheng# 8*da14cebeSEric Cheng# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*da14cebeSEric Cheng# or http://www.opensolaris.org/os/licensing. 10*da14cebeSEric Cheng# See the License for the specific language governing permissions 11*da14cebeSEric Cheng# and limitations under the License. 12*da14cebeSEric Cheng# 13*da14cebeSEric Cheng# When distributing Covered Code, include this CDDL HEADER in each 14*da14cebeSEric Cheng# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*da14cebeSEric Cheng# If applicable, add the following below this CDDL HEADER, with the 16*da14cebeSEric Cheng# fields enclosed by brackets "[]" replaced with your own identifying 17*da14cebeSEric Cheng# information: Portions Copyright [yyyy] [name of copyright owner] 18*da14cebeSEric Cheng# 19*da14cebeSEric Cheng# CDDL HEADER END 20*da14cebeSEric Cheng# 21*da14cebeSEric Cheng 22*da14cebeSEric Cheng# 23*da14cebeSEric Cheng# Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24*da14cebeSEric Cheng# Use is subject to license terms. 25*da14cebeSEric Cheng# 26*da14cebeSEric Cheng# 27*da14cebeSEric Cheng 28*da14cebeSEric ChengThis README describes the organization of the files and subdirectories 29*da14cebeSEric Chengthat make up the misc/mac module. 30*da14cebeSEric Cheng 31*da14cebeSEric ChengChanges to the sources should follow the layout and naming conventions 32*da14cebeSEric Chengadopted herein. 33*da14cebeSEric Cheng 34*da14cebeSEric ChengEach functional component of the mac module is implemented in a separate 35*da14cebeSEric Chengsource file. The external interfaces are declared in header files delivered 36*da14cebeSEric Chengunder <sys>. The internal data structures and definitions are declared 37*da14cebeSEric Chengin header files internal to this directory. 38*da14cebeSEric Cheng 39*da14cebeSEric Cheng. Client Interface 40*da14cebeSEric Cheng This is the kernel programming interface for accessing L2 services as 41*da14cebeSEric Cheng a consumer. 42*da14cebeSEric Cheng . mac_client.c 43*da14cebeSEric Cheng . sys/mac_client.h: APIs intended for external MAC consumers 44*da14cebeSEric Cheng . sys/mac_client_priv.h: APIs for GLDv3 components only (dld, 45*da14cebeSEric Cheng dls, aggr, vnic, etc). 46*da14cebeSEric Cheng . mac_client_impl.h Internals. 47*da14cebeSEric Cheng 48*da14cebeSEric Cheng. Provider Interface 49*da14cebeSEric Cheng This is the GLDv3 kernel driver interface. Functions and data structures 50*da14cebeSEric Cheng are used by L2 drivers to provide services to MAC consumers. 51*da14cebeSEric Cheng . mac_provider.c 52*da14cebeSEric Cheng . sys/mac_provider.h 53*da14cebeSEric Cheng 54*da14cebeSEric Cheng. MAC Type Plugins 55*da14cebeSEric Cheng The GLDv3 L2 supports multiple types of media control. Each type is 56*da14cebeSEric Cheng implemented as a plugin delivered in a separate file under the 57*da14cebeSEric Cheng plugin/ directory. 58*da14cebeSEric Cheng Add a new file to the plugin/ directory for introducing a new MAC type. 59*da14cebeSEric Cheng 60*da14cebeSEric Cheng. Core Component. 61*da14cebeSEric Cheng - Scheduling Engine: 62*da14cebeSEric Cheng . mac_datapath_setup.c: Control path for the scheduler. 63*da14cebeSEric Cheng . mac_soft_ring.c, 64*da14cebeSEric Cheng mac_soft_ring.h: Fanout Soft Rings. 65*da14cebeSEric Cheng . mac_sched.c: Data path 66*da14cebeSEric Cheng . mac_bcast.c Data path and switching for broadcast and 67*da14cebeSEric Cheng multicast packets. 68*da14cebeSEric Cheng . mac_stat.c: Statistics 69*da14cebeSEric Cheng 70*da14cebeSEric Cheng - Classification Engine 71*da14cebeSEric Cheng mac_flow.c: Flows and software classification: 72*da14cebeSEric Cheng 73*da14cebeSEric Cheng - NICs Resources Management 74*da14cebeSEric Cheng . mac.c (this file also has other miscelanea) 75*da14cebeSEric Cheng 76*da14cebeSEric Cheng. Misc 77*da14cebeSEric Cheng . mac.c 78*da14cebeSEric Cheng . mac_util.c 79*da14cebeSEric Cheng . mac_ndd.c 80*da14cebeSEric Cheng 81