xref: /titanic_50/usr/src/uts/common/io/mac/README (revision da14cebe459d3275048785f25bd869cb09b5307f)
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