8.6 State Machine Changes for Distribution

When moving to distributed or multi-board systems, there are two approaches to the protocol state machine implementation. The state machine can be completely located in one card (monolithic control plane), or it can be implemented in two parts—one part on the control card and the other on the line card. The latter approach is sometimes called a split control plane.

8.6.1 Monolithic Control Plane

In the monolithic control plane scenario, action routines are called from the state machine implementation, as before. The difference now is that the routines could result in a message sent to the line card. The action routine can wait on a response before returning, i.e., a hard wait is performed for the response while in the action routine. However, the routine cannot wait forever and may need to be signaled on timeout. This is similar to the select call with timeout that is present in BSD UNIX. If the call times out, the action routine returns a failure code. Subsequent error handling is similar to the single-CPU situation.

8.6.2 Split Control Plane

The split-control plane permits parts of the control plane to execute on a line card. For example, the “Hello” processing in OSPF can be implemented on the line card (called the OSPF Hello Task in Figure 8.6) This processing requires periodic polling of neighbor routers as well as processing their polling (Hello) messages. This approach has the following advantages:

  • A faster response time to the neighbor, since the “Hello” need not be sent to the control card for processing.

  • Lowering the bandwidth consumption on the control card/line card link—since the “Hello” messages are not sent on this link.

The split control plane requires the state machine at the protocol level to change. In the OSPF example, the neighbor state machine is used as the engine for the neighbor PDU processing. Implementations will ideally keep this state machine and table independent of the main state machine table, thus permitting it to be easily moved to a distributed environment. In a split control plane environment, the neighbor state machine will now be implemented in the line card. Inputs to the neighbor state machine will be the same as before except that the action routines may need to send messages to the main state machine on the control card. Similarly, action routines from the main state machine may need to send messages that impact the neighbor state machine on the line card.

click to expand
Figure 8.6: OSPF Split Control Plane Example.



Designing Embedded Communications Software
Designing Embedded Communications Software
ISBN: 157820125X
EAN: 2147483647
Year: 2003
Pages: 126
Authors: T. Sridhar

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net