OpenSolaris_b135/cmd/cmd-inet/etc/ipqosconf.1.sample

# ident	"%Z%%M%	%I%	%E% SMI"
#
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# 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
#

# Mandatory file version identifier
fmt_version 1.0

# This configuration marks video traffic for EF PHB, i.e. Expedited Forwarding.
# Mail traffic is marked for AF11, anonymous user FTP traffic for AF12 and news
# traffic for AF13 PHBs, i.e. Assured Forwarding class 1 with drop precedences
# low medium and high respectively.
# For information on AF and EF PHBs refer to the IPQoS Administration Guide or
# the RFCs 2597 and 2598 respectively.
#
# Before this configuration file can be applied the sport parameter of the
# filter videoout needs to be given a valid port number/service name of a 
# service whose traffic you wish to apply EF to and the uid parameter of the
# filter ftpout needs to be given the uid of the user ftp. The ftp user account
# is the one used by the ftp server for anonymous logins, thus filtering on
# this enables us to capture anonymous ftp user traffic.

action {
	module ipgpc
	# Name must be ipgpc.classify for ipgpc action.
	name ipgpc.classify

	class {
		name video
		next_action markEF
	}
	class {
		name mail
		next_action markAF11
	}
	class {
		name ftp
		next_action markAF12
	}
	class {
		name news
		next_action markAF13
	}

	filter {
		name videoout
		# Source port of video traffic, given by __videoport__.
		sport __videoport__
		# Locally generated outbound traffic.
		direction LOCAL_OUT
		class video
	}
	filter {
		name mailout
		sport smtp
		direction LOCAL_OUT
		class mail
	}
	# This filter catches anonymous ftp user outgoing traffic.
	filter {
		name ftpout
		direction LOCAL_OUT
		# Traffic generated by ftp user, given by __ftp-uid__.
		uid __ftp-uid__
		class ftp
	}
	filter {
		name newsout
		sport nntp
		direction LOCAL_OUT
		class news
	}
}

# Mark the DSCP with code point EF, 101110 = 46.
action {
	module dscpmk
	name markEF
	params {
		# Set all 64 entries of dscp_map to 46 decimal.
		dscp_map {0-63:46}
		next_action continue
	}
}

# Mark the DSCP with code point AF11, 001010 = 10.
action {
	module dscpmk
	name markAF11
	params {
		dscp_map {0-63:10}
		next_action continue
	}
}

# Mark the DSCP with code point AF12, 001100 = 12.
action {
	module dscpmk
	name markAF12
	params {
		dscp_map {0-63:12}
		next_action continue
	}
}

# Mark the DSCP with code point AF13, 001110 = 14.
action {
	module dscpmk
	name markAF13
	params {
		dscp_map {0-63:14}
		next_action continue
	}
}