Check out the new USENIX Web site. next up previous
Next: Automatic configuration change tracking Up: Problem auto-diagnosis methods Previous: Protocol augmentation

Cross-layer analysis

Many subsystems of appliance operating systems are implemented as stacked modules. For example, the TCP/IP subsystem consists of the link layer, the network layer (IP), the transport layer (TCP and UDP) and the application layer organized as a protocol stack. Each layer of a stacked set of modules maintains an independent set of statistics for error conditions and performance metrics. When a problem occurs, it may manifest itself as aberrant statistic values in multiple layers in the system. In classical systems, there is no logic that correlates these aberrant statistic values across different system layers.

Cross-layer analysis is a new technique whereby statistic values in different layers of a subsystem are linked together, and co-analyzed. Essentially, we identify paths [23] in OS subsystems and link together the statistic values in the various layers that each path crosses. When continuous monitoring detects a problem in a path, the various layers of the path can be quickly examined to isolate the specific problem.

As a debugging technique, cross-layer analysis is a formalization of the ad-hoc technique used by human experts in manual problem debugging where an observation of an aberrant statistic value in one layer triggers a study of the statistic values of an adjacent layer. Considering the pipeline analogy of an appliance operating system, cross-layer analysis guides the debugging process by tracing through and ensuring the health of the various layers that implement the disk-to-network pipes.

As a guiding framework, cross-layer analysis can aid the design of logic that causes the continuous monitoring subsystem to trigger the various active tests. For example, the logic to perform a check for a duplex mismatch on a network interface may be triggered by an observation of excessive TCP level packet loss in a connection that goes through this interface. Cross-layer analysis can also guide the design of the statistic data and its collection logic so as to allow problem debugging to be easier. For example, the need to do cross-layer analysis may require a modification of the BSD tcpstat and ipstat structures so as to keep some statistics on a per flow basis.


next up previous
Next: Automatic configuration change tracking Up: Problem auto-diagnosis methods Previous: Protocol augmentation
Gaurav Banga
2000-04-24