ipqos - IP Quality of Service
ipqos is an implementation of the Differentiated Services model defined in RFC2475: An Architecture for Differentiated Services, which defines the following entities: multi-field classifier, meter, marker, and dropper. The Solaris implementation of ipqos adds a flow accounting entity.
These entities can be combined into processing paths that constitute a series of actions that are performed on groups of flows. The classifier groups together flows and directs them in a given processing path. Classifier configuration and path construction are achieved using the ipqosconf(8) command.
A summary of the ipqos entities follows. For more information, refer to the corresponding man page for each entity.
An implementation of the classifier defined in the model. ipgpc has been extended and is able to select traffic based on IP header parameters, user id, project id, interface name, interface group and direction.
These modules implement different metering algorithms. tokenmt implements both RFC2697: A Single Rate Three Color Marker and RFC 2698: A Two Rate Three Color Marker. tswtclmt implements RFC2859: A Time Sliding Window Three Color Marker. These modules only implement the metering functions defined in the RFCs.
A marker entity that allows the setting of the user priority field of Ethernet frames as defined in the IEEE 802.1D specification. dlcosmk is only available with VLAN capable network interfaces.
A marker entity that enables the setting of the Differentiated Services Code Point Value in the IP header as defined in RFC 2474: Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 headers.
An accounting module that utilizes the Solaris extended accounting facility. flowacct logs all flows with parameters used to build a charge back mechanism.
ipqos modules export statistics through the kstat facility. Exported statistics contain the following common parameters:
dynamic parameter identifying a specific instance
a string for global statistics (for example, ipgpc global stat) or a class name for per-class statistics for a classifier action
To verify classifier configuration, generate traffic for each of the configured classes and check that the statistic counters for the expected class are increased. If you're unsure about the parameters for your traffic, you can use snoop(8) to determine them.
Some actions have the instance id of the next configured action in their statistics. This instance id can be used to follow the action processing path. Instance id's -1 and -2 are the built-in actions continue and drop, respectively.
To retrieve all statistics for ipgpc:
kstat -m ipgpc
To retrieve statistics for the class http:
kstat -m ipgpc -c http
See attributes(7) for descriptions of the following attributes:
RFC 2475, An Architecture for Differentiated Services S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss — The Internet Society, 1998
RFC 2474, Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers K. Nichols, S. Blake, F. Baker, D. Black — The Internet Society, 1998
RFC 2697, A Single Rate Three Color Marker J. Heinanen, R. Guerin — The Internet Society, 1999
RFC 2698, A Two Rate Three Color Marker J. Heinanen, R. Guerin — The Internet Society, 1999
RFC 2859, A Time Sliding Window Three Colour Marker (TSWTCM) W. Fang, N. Seddigh, B. Nandy — The Internet Society, 2000