diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc904.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc904.txt')
-rw-r--r-- | doc/rfc/rfc904.txt | 1391 |
1 files changed, 1391 insertions, 0 deletions
diff --git a/doc/rfc/rfc904.txt b/doc/rfc/rfc904.txt new file mode 100644 index 0000000..cb4a36c --- /dev/null +++ b/doc/rfc/rfc904.txt @@ -0,0 +1,1391 @@ +Network Working Group D.L. Mills +Request for Comments: 904 April 1984 + + + Exterior Gateway Protocol Formal Specification + + +0. Status of this Memo + + This RFC is the specification of the Exterior Gateway Protocol +(EGP). This document updates RFCs 827 and 888. This RFC specifies a +standard for the DARPA community. Interactions between gateways of +different autonomous systems in the ARPA-Internet must follow this +protocol. + +1. Introduction + + This document is a formal specification of the Exterior Gateway +Protocol (EGP), which is used to exchange net-reachability information +between Internet gateways belonging to the same or different autonomous +systems. The specification is intended as a reference guide for +implementation, testing and verification and includes suggested +algorithmic parameters suitable for operation over a wide set of +configurations, including the ARPANET and many local-network +technologies now part of the Internet system. + + Specifically excluded in this document is discussion on the +background, application and limitations of EGP, which have been +discussed elsewhere (RFC-827, RFC-888). If, as expected, EGP evolves to +include topologies not restricted to tree-structures and to incorporate +full routing capabilities, this specification will be amended or +obsoleted accordingly. However, it is expected that, as new features +are added to EGP, the basic protocol mechanisms described here will +remain substantially unchanged, with only the format and interpretation +of the Update message (see below) changed. + + Section 2 of this document describes the nomenclature used, while +Section 3 describes the state-machine model, including events, actions, +parameters and state transitions. Section 4 contains a functional +description of the operation of the machine, together with specific +procedures and algorithms. Appendix A describes the EGP message +formats, while Appendix B contains a summary of the minor differences +between these and the formats described in RFC-888. Appendix C presents +a reachability analysis including a table of composite state transitions +for a system of two communicating EGP gateways. + +1.1. Summary and Overview + + EGP exists in order to convey net-reachability information between +neighboring gateways, possibly in different autonomous systems. The +protocol includes mechanisms to acquire neighbors, monitor neighbor +reachability and exchange net-reachability information in the form of +Update messages. The protocol is based on periodic polling using +Hello/I-Heard-You (I-H-U) message exchanges to monitor neighbor +reachability and Poll commands to solicit Update responses. + + Specification of EGP is based on a formal model consisting of a + +Exterior Gateway Protocol Formal Specification Page 2 +D.L. Mills + + +finite-state automaton with defined events, state transitions and +actions. The following diagram shows a simplified graphical +representation of this machine (see Section 3.4 for a detailed state +transition table). + + +-------+ + | |---------------+---------------+ + +---->| Idle | A A + | | |-----------+ | | + | +-------+ | | | + | | A Request | | Cease | Cease + | Start | | Cease | | | + | V | Refuse V | | + | +-------+ Confirm +-------+ Up +-------+ + | | |-------->| |-------->| | + | | Aqsn | | Down | Down | Up | + | | |----+ | |<--------| | + | +-------+ | +-------+ +-------+ + | | | | + | Stop | | | + | Cease-ack | Stop | Stop | Stop + | +-------+ | | | + | | | V V V + +-----| Cease |<---+--------+-----------------+ + | | + +-------+ + + Following is a brief summary and overview of gateway operations by +state as determined by this model. + +Idle State (0) + + In the Idle state the gateway has no resources (table space) + assigned to the neighbor and no protocol activity of any kind is in + progress. It responds only to a Request command or a Start event + (system or operator initiated) and ignores all other commands and + responses. The gateway may optionally return a Cease-ack response + to a Cease command in this state. + + Upon receipt of a Request command the gateway initializes the state + variables as described in Section 3.1, sends a Confirm response and + transitions to the Down state, if resource committments permit, or + sends a Refuse response and returns to the Idle state if not. Upon + receipt of a Start event it sends a Request command and transitions + to the Acquistion state. + +Acquisition State (1) + + In the Acquisition state the gateway periodically retransmits + Request commands. Upon receiving a Confirm response it initializes + +Exterior Gateway Protocol Formal Specification Page 3 +D.L. Mills + + + the state variables and transitions to the Down state. Upon + receiving a Refuse response it returns to the Idle state. The + gateway does not send any other commands or responses in this state, + since not all state variables have yet been initialized. + +Down State (2) + + In the Down state the gateway has received a Request command or a + Confirm response has been received for a previously sent Request. + The neighbor-reachability protocol has declared the neighbor to be + down. In this state the gateway processes Request, Cease and Hello + commands and responds as required. It periodically retransmits + Hello commands if enabled. It does not process Poll commands and + does not send them, but may optionally process an unsolicited Update + indication. + +Up State (3) + + In the Up state the neighbor-reachability protocol has declared the + neighbor to be up. In this state the gateway processes and responds + to all commands. It periodically retransmits Hello commands, if + enabled, and Poll commands. + +Cease State (4) + + A Stop event causes a Cease command to be sent and a transition to + the Cease state. In this state the gateway periodically retransmits + the Cease command and returns to the Idle state upon receiving a + Cease-ack response or a another Stop event. The defined state + transitions are designed to ensure that the neighbor does with high + probability receive the Cease command and stop the protocol. + + In following sections of this document document a state machine +which can serve as a model for implementation is described. It may +happen that implementators may deviate from this model while conforming +to the protocol specification; however, in order to verify conformance +to the specification, the state-machine model is intended as the +reference model. + + Although not mentioned specifically in this document, it should be +understood that all Internet gateways must include support for the +Internet Control Message Protocol (ICMP), specifically ICMP Redirect and +ICMP Destination Unreachable messages. + +2. Nomenclature + + The following EGP message types are recognized in this document. +The format of each of these messages is described in Appendix A. + +Exterior Gateway Protocol Formal Specification Page 4 +D.L. Mills + + + Name Function + ------------------------------------------------------ + Request request acquisition of neighbor and/or + initialize polling variables + Confirm confirm acquisition of neighbor and/or + initialize polling variables + Refuse refuse acquisition of neighbor + Cease request de-acquisition of neighbor + Cease-ack confirm de-acquisition of neighbor + Hello request neigbor reachability + I-H-U confirm neigbor reachability + Poll request net-reachability update + Update net-reachability update + Error error + + EGP messages are classed as commands which request some action, +responses, which are sent to indicate the status of that action, and +indications, which are similar to responses, but may be sent at any +time. Following is a list of commands along with their possible +responses. + + Command Corresponding Responses + --------------------------------------- + Request Confirm, Refuse, Error + Cease Cease-ack, Error + Hello I-H-U, Error + Poll Update, Error + + The Update and Error messages are classed both as responses and +indications. When sent in reply to a previous command, either of these +messages is classed as a response. In some circumstances an unsolicited +Update message can be sent, in which case it is classed as an +indication. The use of the Error message other than as a response to a +previous command is a topic for further study. + +3. State Machine + + This section describes the state-machine model for EGP, including +the variables and constants which establish the state at any time, the +events which cause the state transitions, the actions which result from +these transitions and the state-transition table which defines the +behavior. + +3.1. State Variables + + The state-machine model includes a number of state variables which +establish the state of the protocol between the gateway and each of its +neighbors. Thus, a gateway maintaining EGP with a number of neighbors +must maintain a separate set of these state variables for each neighbor. +The current state, events and actions of the state machine apply to each + +Exterior Gateway Protocol Formal Specification Page 5 +D.L. Mills + + +neighbor separately. + + The model assumes that system resources, including the set of state +variables, are allocated when the state machine leaves the Idle state, +either because of the arrival of a Request specifying a new neighbor +addreess, or because of a Start event specifying a new neighbor address. +When either of these events occur the values of the state variables are +initialized as indicated below. Upon return to the Idle state all +resources, including the set of state variables, are deallocated and +returned to the system. Implementators may, of course, elect to +dedicate resources and state variables permananently. + + Included among the set of state variables are the following which +determine the state transitions of the model. Initial values for all of +the variables except the send sequence number S are set during the +initial Request/Confirm exchange. The initial value for S is arbitrary. + + Name Function + -------------------------------------------------------------- + R receive sequence number + S send sequence number + T1 interval between Hello command retransmissions + T2 interval between Poll command retransmissions + T3 interval during which neighbor-reachability + indications are counted + M hello polling mode + t1 timer 1 (used to control Request, Hello and Cease + command retransmissions) + t2 timer 2 (used to control Poll command retransmissions) + t3 timer 3 (abort timer) + +Additional state variables may be necessary to support various timer and +similar internal housekeeping functions. The function and management of +the cited variables are discussed in Section 4. + +3.2. Fixed Parameters + + This section defines several fixed parameters which characterize +the gateway functions. Included is a suggested value for each parameter +based on experimental implementations in the Internet system. These +values may or may not be appropriate for the individual configuration. + + Following is a list of time-interval parameters which control +retransmissions and other time-dependent functions. + +Exterior Gateway Protocol Formal Specification Page 6 +D.L. Mills + + + Name Value Description + -------------------------------------------------------------- + P1 30 sec minimum interval acceptable between successive + Hello commands received + P2 2 min minimum interval acceptable between successive + Poll commands recieved + P3 30 sec interval between Request or Cease command + retransmissions + P4 1 hr interval during which state variables are + maintained in the absence of commands or + responses in the Down and Up states. + P5 2 min interval during which state variables are + maintained in the absence of responses in the + Acquisition and Cease states + + Parameters P4 and P5 are used only if the abort-timer option is +implemented. Parameter P4 establishes how long the machine will remain +in the Down and Up states in the absence of commands or responses and +would ordinarily be set to sustain state information while the neighbor +is dumped and restarted, for example. Parameter P5 establishes how long +the machine will remain in the Acquisition or Cease states in the +absence of responses and would ordinarily be set in the same order as +the expected value of T3 variables. + + Following is a list of other parameters of interest. + + Name Active Passive Description + ----------------------------------------------- + j 3 1 neighbor-up threshold + k 1 4 neighbor-down threshold + + The j and k parameters establish the "noise immunity" of the +neighbor-reachability protocol described later. The values in the +Active column are suggested if the gateway elects to do hello polling, +while the values in the Passive column are suggested otherwise. + +3.3. Events + + Following is a list of events that can cause state transitions in +the model. + +Exterior Gateway Protocol Formal Specification Page 7 +D.L. Mills + + +Name Event +---------------------------------------------------------------------- +Up At least j neighbor-reachability indications have been + received within the last T3 seconds. +Down At most k neighbor-reachabilitiy indications have been + received within the last T3 seconds. +Request Request command has been received. +Confirm Confirm command has been received. +Refuse Refuse response has been received. +Cease Cease command has been received. +Cease-ack Cease-ack response has been received. +Hello Hello command has been received. +I-H-U I-H-U response has been received. +Poll Poll command has been received. +Update Update response has been received. +Start Start event has been recognized due to system or + operator intervention. +Stop/t3 Stop event has been recognized due to (a) system or + operator intervention or (b) expiration of the abort + timer t3. +t1 Timer t1 has counted down to zero. +t2 Timer t2 has counted down to zero. + + There is one special event, called a neighbor-reachability +indication, which occurs when: + +1. The gateway is operating in the active mode (hello polling enabled) + and either a Confirm, I-H-U or Update response is received. + +2. The gateway is operating in the passive mode (hello polling + disabled) and either a Hello or Poll command is received with the + "Up state" code in the Status field. + +3.4. State Transition Table + + The following table summarizes the state transitions that can occur +in response to the events listed above. Transitions are shown in the +form n/a, where n is the next state and a represents the action. + +Exterior Gateway Protocol Formal Specification Page 8 +D.L. Mills + + + 0 Idle 1 Aqsn 2 Down 3 Up 4 Cease + +-----------+-----------+-----------+-----------+-----------+ +Up |0 |1 |3/Poll |3 |4 | +Down |0 |1 |2 |2 |4 | +Request |2/Confirm *|2/Confirm |2/Confirm |2/Confirm |4/Cease | +Confirm |0/Cease **|2 |2 |3 |4 | +Refuse |0/Cease **|0 |2 |3 |4 | +Cease |0/Cease-ack|0/Cease-ack|0/Cease-ack|0/Cease-ack|0/Cease-ack| +Cease-ack |0 |1 |2 |3 |0 | +Hello |0/Cease **|1 |2/I-H-U |3/I-H-U |4 | +I-H-U |0/Cease **|1 |2/Process |3/Process |4 | +Poll |0/Cease **|1 |2 |3/Update |4 | +Update |0/Cease **|1 |2 |3/Process |4 | +Start |1/Request |1/Request |1/Request |1/Request |4 | +Stop/t3 |0 |0 |4/Cease |4/Cease |0 | +t1 |0 |1/Request |2/Hello |3/Hello |4/Cease | +t2 |0 |1 |2 |3/Poll |4 | + +-----------+-----------+-----------+-----------+-----------+ + +Note *: The transition shown applies to the case where the +neighbor-acquisition request is accepted. The transition "0/Refuse" +applies to the case where the request is rejected. + +Note **: The Cease action shown is optional. + +3.5. State Transitions and Actions + + The following table describes in detail the transitions of the +state machine and the actions evoked. + + Next Message +Event State Sent Actions +------------------------------------------------------------------------ + +Idle State (0) + +Request 2 Confirm Initialize state variables and + Hello reset timer t1 to T1 seconds and + reset timer t3 to P5 seconds. + (or) 0 Refuse Return resources. +Cease 0 Cease-ack Return resources. +Start 1 Request Reset timer t1 to P3 seconds and + reset timer t3 to P5 seconds. + +Acquisition State (1) + +Request 2 Confirm Initialize state variables and + Hello reset timer t1 to T1 seconds and + reset timer t3 to P5 seconds. +Confirm 2 Hello Initialize state variables and + +Exterior Gateway Protocol Formal Specification Page 9 +D.L. Mills + + + reset timer t1 to T1 seconds and + reset timer t3 to P5 seconds. +Refuse 0 Stop timers and return + resources. +Cease 0 Cease-ack Stop timers and return + resources. +Start 1 Request Reset timer t1 to P3 seconds and + reset timer t3 to P5 seconds. +Stop/t3 0 Stop timers and return + resources. +t1 1 Request Reset timer t1 to P3 seconds. + +Down State (2) +Note: Reset timer t3 to P4 seconds on receipt of a reachability +indication. + +Up 3 Poll Reset timer t2 to T2 seconds. +Request 2 Confirm Reinitialize state variables and + Hello reset timer t1 to T1 seconds and + reset timer t3 to P5 seconds. +Cease 0 Cease-ack Stop timers and return + resources. +Hello 2 I-H-U +I-H-U 2 Process neighbor-reachability + info. +Start 1 Request Reset timer t1 to P3 seconds and + reset timer t3 to P5 seconds. +Stop/t3 4 Cease Reset timer t1 to P3 seconds and + reset timer t3 to P5 seconds. +t1 2 Hello Reset timer t1 to T1 seconds. + +Up State (3) +Note: Reset timer t3 to P4 seconds on receipt of a reachability +indication. + +Down 2 Stop timer t2. +Request 2 Confirm Renitialize state variables and + Hello reset timer t1 to T1 seconds and + reset timer t3 to P5 seconds. +Cease 0 Cease-ack Stop timers and return + resources. +Hello 3 I-H-U +I-H-U 3 Process neighbor-reachability + info. +Poll 3 Update +Update 3 Process net-reachability info. +Start 1 Request Reset timer t1 to P3 seconds and + reset timer t3 to P5 seconds. +Stop/t3 4 Cease Reset timer t1 to P3 seconds and + reset timer t3 to P5 seconds. + +Exterior Gateway Protocol Formal Specification Page 10 +D.L. Mills + + +t1 3 Hello Reset timer t1 to T1 seconds. +t2 3 Poll Reset timer t2 to T2 seconds. + +Cease State (4) + +Request 4 Cease +Cease 0 Cease-ack Stop timers and return + resources. +Cease-ack 0 Stop timers and return + resources. +Stop/t3 0 Stop timers and return + resources. +t1 4 Cease Reset timer t1 to P3 seconds. + +4. Functional Description + + This section contains detailed descriptions of the various +procedures and algorithms used to manage the protocol. + +4.1. Managing the State Variables + + The state variables which characterize the protocol are summarized +in Section 3.1. This section describes the detailed management of these +variables, including sequence numbers, polling intervals and timers. + +4.1.1. Sequence Numbers + + All EGP commands and replies carry a sequence number. The state +variable R records the last sequence number received in a command from +that neighbor. The current value of R is used as the sequence number +for all replies and indications sent to the neighbor until a command +with a different sequence number is received from that neighbor. + + Implementors are free to manage the sequence numbers of the +commands sent; however, it is suggested that a separate send state +variable S be maintained for each EGP neighbor and that its value be +incremented just before the time an Poll command is sent and at no other +times. The actions upon receipt of a response or indication with +sequence number not equal to S is not specified; however, it is +recommended these be discarded. + +4.1.1. Polling Intervals + + As part of the Request/Confirm exchange a set of polling intervals +are established including T1, which establishes the interval between +Hello command retransmissions, and T2, which establishes the interval +between Poll retransmissions. + + Each gateway configuration is characterized by a set of fixed +parameters, including P1, which specifies the minimum polling interval + +Exterior Gateway Protocol Formal Specification Page 11 +D.L. Mills + + +at which it will respond to Hello commands, and P2, which specifies the +minimum polling interval at which it will respond to Poll commands. P1 +and P2 are inserted in the Hello Interval (S1) and Poll Interval (S2) +fields, respectively, of Request commands and Confirm responses. + + A gateway receiving a Request command or Confirm response uses the +S1 and S2 fields in the message to calculate its own T1 and T2 state +variables, respectively. Implementors are free to perform this +calculation in arbitrary ways; however, the following constraints must +be observed: + +1. If T1 < S1 the neighbor may discard Hello commands. If T2 < S2 the + neighbor may discard Poll commands. + +2. The time window T3 in which neighbor-reachability indications are + counted is dependent on T1. In the case where two neighbors select + widely differing values for their T3 state variables, the + neighbor-reachability algorithm may not work properly. This can be + avoided if T1 > max(P1, S1). + +3. If either S1 or S2 or both are unacceptable for some reason (e.g. + exceed useful limits), the neighbor may either send a Refuse + response or declare a Stop event, depending on state. + + It is suggested that T3 be computed as four times the value of T1, +giving a window of four neighbor-reachability indications, which has +been found appropriate in the experimental implementations. +Implementors may choose to make T3 a fixed parameter in those cases +where the path between the neighbors has well-known characteristics. + + Note that, if a gateway attempts to send Hello commands near the +rate max(P1, S1) or Poll commands near the rate max(P2, S2), the +neighbor may observe their succeeding arrivals to violate the polling +restrictions due to bunching in the net. For this reason the gateway +should send at rates somewhat below these. Just how much below these +rates is appropriate depends on many factors beyond the scope of this +specification. + +4.1.3. Hello Polling Mode + + The neighbor-reachability algorithm can be used in either the +active or passive mode. In the active mode Hello commands are sent +periodically along with Poll commands, with reachability determined by +the corresponding I-H-U and Update responses. In the passive mode Hello +commands are not sent and I-H-U responses are not expected. +Reachability is then determined from the Status field of received Hello +or Poll commands or Update responses. + + The M state variable specifies whether the gateway operates in the +active or passive mode. At least one of the two neighbors sharing the + +Exterior Gateway Protocol Formal Specification Page 12 +D.L. Mills + + +protocol must operate in the active mode; however, the +neighbor-reachability protocol is designed to work even if both +neighbors operate in the active mode. The value of M is determined from +the Status field of a Request command or Confirm response. The sender +sets this field according to whether the implementation supports the +active mode, passive mode or both: + + Status Sender capabilities + -------------------------------- + 0 either active or passive + 1 active only + 2 passive only + + The receiver inspects this field and sets the value of M according +to its own capabilities as follows: + + Status Receiver capabilites + field 0 1 2 + ------------------------------- + 0 * active passive + 1 passive active passive + 2 active active ** + + In the case of "*" the mode is determined by comparing the +autonomous system numbers of the neigbors. The neighbor with the +smallest such number assumes active mode, while the other neighbor +assumes passive mode. In the case of "**" the neighbor may either send +a Refuse response or declare a Stop event, depending on state. + +4.1.4. Timers + + There are three timers defined in the state machine: t1, used to +control retransmission of Request, Hello and Cease messages, t2, used to +control retransmission of Poll commands, and t3, which serves as an +abort-timer mechanism should the protocol hang indefinately. The timers +are set to specified values upon entry to each state and count down to +zero. + + In the case of t1 and t2 state-dependent events are declared when +the timer counts down to zero, after which the timer is reset to the +specified value and counts down again. In the case of t3 a Stop event +is declared when the timer counts down to zero. Implementors may choose +not to implement t3 or, if so, may choose to implement it only in +certain states, with the effect that Request, Hello and/or Cease +commands may be retransmitted indefinately. + + The following table shows the initial values for each of the timers +in each state. A missing value indicates the timer is not used in that +state. Note that timer t3 is set to P4 upon receipt of a +neighbor-reachability indication when in either the Down or Up states. + +Exterior Gateway Protocol Formal Specification Page 13 +D.L. Mills + + + Idle Aqsn Down Up Cease + Timer 0 1 2 3 4 + --------------------------------------------- + t1 P3 T1 P3 + t2 T2 + t3 P5 P5 P5 + +4.2. Starting and Stopping the Protocol + + The Start and Stop events are intrinsic to the system environment +of the gateway. They can be declared as the result of the gateway +process being started and stopped by the operator, for example. A Start +event has meaning only in some states; however, a Stop event has +meaning in all states. + + In all except the Idle state the abort timer t3 is presumed +running. This timer is initialized at P5 seconds upon entry to any +state and at P4 seconds upon receipt of a neighbor-reachability +indication in the Down and Up states. If it expires a Stop event is +declared. A Stop event can also be declared by an intrinsic system +action such as a resource problem or operator command. + + If the abort timer is not implemented a manually-initiated Stop +event can be used to stop the protocol. If this is done in the Down or +Up states, the machine will transition to the Cease state and emit a +Cease command. If the neighbor does not respond to this command the +machine will stay in the Cease state indefinately; however, a second +Stop event can be used in this state to force a transition to the Idle +state. + + A Cease command received in any state will cause the gateway to +immediately send the Cease-ack response and transition to the Idle +state. This causes the protocol to be stopped and all system resources +committed to the gateway process to be released. The interval between +the time the gateway enters the Idle state as the result of receiving a +Cease command and the time when it next sends a Request command to +resume the protocol is not specified; however, it is recommended this +interval be at least P5 seconds. + + It may happen that the Cease-ack response is lost in the network, +causing the neighbor to retransmit the Cease response indefinately, at +least if it has not implemented the abort-timer option. In order to +reduce the likelihood of this happening, it is suggested that a gateway +in the Idle state be prepared to reply to a Cease command with a +Cease-ack response whenever possible. + +4.3. Determining Neighbor Reachability + + The purpose of the neighbor-reachability algorithm is to confirm +that the neighbor can safely be considered operational and capable of + +Exterior Gateway Protocol Formal Specification Page 14 +D.L. Mills + + +providing reliable net-reachability information. An equally important +purpose is to filter noisy reachability information before sending it on +to the remainder of the Internet gateway system, thus avoiding +unneccesary reachability changes. + + As described above, a gateway operating in the active mode sends +periodic Hello commands and listens for I-H-U responses in order to +determine neighbor-reachability indications. A gateway operating in the +passive mode determines reachability indications by means of the Status +field in received Hello commands. Poll commands and Update responses +can be used in lieu of Hello commands and I-H-U responses respectively, +since they contain the same Status-field information. + + The neighbor-reachability algorithm runs continuously while the +gateway is in the Down and Up states and operates as follows. Define a +moving window in time starting at the present and extending backwards +for t seconds. Then count the number n of neighbor-reachability +indications which have occured in that window. If n increases to j, +then declare a Up event. If n decreases to k, then declare a Down +event. The number n is set to zero upon entering the Down state from +any state other than the Up state. + + The window t in this algorithm is defined as T3 seconds, the value +of which is suggested as four times T1, which itself is determined +during the Request/Confirm exchange. For proper operation of the +algorithm only one neighbor-reachability indication is significant in +any window of T1 seconds and additional ones are ignored. Note that the +only way n can increase is as the result of a new neighbor-reachability +indication and the only way it can decrease is as the result of an old +neighbor-reachability indication moving out of the window. + + The behavior of the algorithm described above and using the +suggested fixed parameters j and k differs depending on whether the +gateway is operating in the active or passive mode. In the active mode +(j = 3, k = 1 and T3/T1 = 4), once the neighbor has been declared down +it will be forced down for at least two T1 intervals and, once it has +been declared up it will be forced up for at least two T1 intervals. It +will not change state unless at least three of the last four +determinations of reachability have indicated that change. + + In the passive mode (j = 1, k = 4 and T3/T1 = 4), the neighbor will +be considered up from the first time the Status field of a Hello or Poll +command or Update response indicates "Up state" until four successive T1 +intervals have passed without such indication. This design, suggested +by similar designs used in the ARPANET, has proven effective in the +experimental implementations, but may need to be adjusted for other +configurations. + + It is convenient for the active gateway to send Hello commands at a +rate of one every T1 seconds and substitute a Poll command for a Hello + +Exterior Gateway Protocol Formal Specification Page 15 +D.L. Mills + + +command approximately once every T2 seconds, with the +neighbor-reachability indication generated by the corresponding I-H-U or +Update responses. Its passive neighbor generates neighbor-reachability +indications from the Status field of received Hello and Poll commands +and Update responses. + + + Implementors may find the following model useful in the +understanding and implementation of this algorithm. Consider an n-bit +shift register that shifts one bit to the right each T1-second interval. +If a neighbor-reachability indication was received during the preceeding +T1-second interval a one bit is shifted into the register at the end of +the interval; otherwise, a zero bit is shifted. A table of 2**n +entries indexed by the contents of the register can be used to calculate +the number of one bits, which can then be used to declare the +appropriate event to the state machine. A value of n equal to four has +been found useful in the experimental implementations. + +4.4. Determining Network Reachability + + Network reachability information is encoded into Update messages in +the form of lists of nets and gateways. The IP Source Address field of +the Poll command is used to specify a network common to the autonomous +systems of each of the neighbors, which is usually, but not necessarily, +the one common to the neighbors themselves. The Update response +includes a list of gateways on the common net. Associated with each +gateway is a list of the networks reachable via that gateway together +with corresponding hop counts. + + It is important to understand that, at the present state of +development as described in RFC-827 and RFC-888, the EGP architectural +model restricts the interpretation of "reachable" in this context. This +consideration, as well as the implied topological restrictions, are +beyond the scope of discussion here. The reader is referred to the RFCs +for further discussion. + + Two types of gateway lists can be included in the Update response, +the format of which is described in Appendix A. Both lists include only +those gateways directly connected to the net specified in the IP Source +Network field of the last-received Poll command. The internal list +includes some or all of the gateways in the same autonomous system as +the sender, together with the nets which are reachable via these +gateways, with the sending gateway listed first. A net is reachable in +this context if a path exists to that net including only gateways in the +system. The external list includes those gateways in other autonomous +systems known to the sender. It is important to realize that the hop +counts do not represent a routing metric and are comparable between +different gateways only if those gateways belong to the same autonomous +system; that is, are in the internal list. + + +Exterior Gateway Protocol Formal Specification Page 16 +D.L. Mills + + + According to the current system architectural model, only gateways +belonging to a designated system, called the core system, may include +the external list in their Update responses. All other gateways may +include only those gateways belonging to the same system and can claim +reachability for a particular net only if that net is reachable in the +same system. + + The interval between successive Poll commands T2 is determined +during the Request/Confirm exchange. However, the specification permits +at most one unsolicited Update indication between succeeding Poll +commands received from the neighbor. It is the intent of the model here +that an Update indication is sent (a) upon entry to the Up state and (b) +when a change in the reachability data base is detected, subject to this +limitation. + + Occasionally it may happen that a Poll command or Update response +is lost in the network, with the effect that net-reachability +information may not be available until after another T2 interval. As an +implementation option, the gateway sending a Poll command and not +receiving an Update response after T1 seconds may send another Poll. +The gateway receiving this Poll may either (a) send an Update response +if it never received the original Poll for that interval, (b) send a +second Update response (which counts as the unsolicited Update +indication mentioned in the preceeding paragraph) or (c) send an Error +response or not respond at all in other cases. + +4.5. Error Messages + + Error messages can be used to report problems such as described in +Appendix A in connection with the Error Response/Indication message +format. In general, an Error message is sent upon receipt of another +command or response with bad format, content or ordering, but never in +response to another Error message. Receipt of an Error message should +be considered advisory and not result in change of state, except +possibly to evoke a Stop event. + +Exterior Gateway Protocol Formal Specification Page 17 +D.L. Mills + + +Appendix A. EGP Message Formats + + The formats for the various EGP messages are described in this +section. All EGP messages include a ten-octet header of six fields, +which may be followed by additional fields depending on message type. +The format of the header is shown below along with a description of its +fields. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | EGP Version # | Type | Code | Status | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Autonomous System # | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence # | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +EGP Version # assigned number identifying the EGP version + (currently 2) + +Type identifies the message type + +Code identifies the message code (subtype) + +Status contains message-dependent status information + +Checksum The EGP checksum is the 16-bit one's complement + of the one's complement sum of the EGP message + starting with the EGP version number field. When + computing the checksum the checksum field itself + should be zero. + +Autonomous System # assigned number identifying the particular + autonomous system + +Sequence # send state variable (commands) or receive state + variable (responses and indications) + + Following is a description of each of the message formats. Note +that the above description applies to all formats and will not be +repeated. + +Exterior Gateway Protocol Formal Specification Page 18 +D.L. Mills + + +A.1. Neighbor Acquisition Messages + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | EGP Version # | Type | Code | Status | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Autonomous System # | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence # | Hello Interval | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Poll Interval | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Note: the Hello Interval and Poll Interval fields are present only in +Request and Confirm messages. + +Type 3 + +Code 0 Request command + 1 Confirm response + 2 Refuse response + 3 Cease command + 4 Cease-ack response + +Status (see below) 0 unspecified + 1 active mode + 2 passive mode + 3 insufficient resources + 4 administratively prohibited + 5 going down + 6 parameter problem + 7 protocol violation + +Hello Interval minimum Hello command polling interval (seconds) + +Poll Interval minumum Poll command polling interval (seconds) + +Following is a summary of the assigned Status codes along with a list of +scenarios in which they might be used. + +Exterior Gateway Protocol Formal Specification Page 19 +D.L. Mills + + +Code Status Scenarios +------------------------------------------------------------------- +0 unspecified when nothing else fits + +1 active mode Request/Confirm only + +2 passive mode Request/Confirm only + +3 insufficient resources 1. out of table space + 2. out of system resources + +4 administratively 1. unknown Autonomous System + prohibited 2. use another gateway + +5 going down 1. operator initiated Stop + 2. abort timeout + +6 parameter problem 1. nonsense polling parameters + 2. unable to assume compatible mode + +7 protocol violation 1. Invalid command or response + received in this state + +Exterior Gateway Protocol Formal Specification Page 20 +D.L. Mills + + +A.2. Neighbor Reachability Messages + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | EGP Version # | Type | Code | Status | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Autonomous System # | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence # | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Type 5 + +Code 0 Hello command + 1 I-H-U response + +Status 0 indeterminate + 1 Up state + 2 Down state + +Exterior Gateway Protocol Formal Specification Page 21 +D.L. Mills + + +A.3. Poll Command + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | EGP Version # | Type | Code | Status | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Autonomous System # | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence # | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | IP Source Network | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Type 2 + +Code 0 + +Status 0 indeterminate + 1 Up state + 2 Down state + +IP Source Network IP network number of the network about which + reachability information is being requested + (coded as 1, 2 or 3 octets, left justified with + trailing zeros) + +Exterior Gateway Protocol Formal Specification Page 22 +D.L. Mills + + +A.4. Update Response/Indication + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | EGP Version # | Type | Code | Status | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Autonomous System # | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence # | # of Int Gwys | # of Ext Gwys | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | IP Source Network | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Gateway 1 IP address (without network #) | (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | # Distances | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Distance 1 | # Nets | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | net 1,1,1 ||||||||||||||||||||||||||||||||| (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | net 1,1,2 ||||||||||||||||||||||||||||||||| (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Distance 2 | # Nets | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | net 1,2,1 ||||||||||||||||||||||||||||||||| (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | net 1,2,2 ||||||||||||||||||||||||||||||||| (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Gateway n IP address (without network #) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | # Distances | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Distance 1 | # Nets | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | net n,1,1 ||||||||||||||||||||||||||||||||| (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | net n,1,2 ||||||||||||||||||||||||||||||||| (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Distance 2 | # Nets | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | net n,2,1 ||||||||||||||||||||||||||||||||| (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | net n,2,2 ||||||||||||||||||||||||||||||||| (1-3 octets) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ... + +Exterior Gateway Protocol Formal Specification Page 23 +D.L. Mills + + +Type 1 + +Code 0 + +Status 0 indeterminate + 1 Up state + 2 Down state + 128 unsolicited message bit + +# of Int Gwys number of interior gateways appearing in this + message + +# of Ext Gwys number of exterior gateways appearing in this + message + +IP Source Network IP network number of the network about which + reachability information is being supplied + (coded as 1, 2 or 3 octets, left justified with + trailing zeros) + +Gateway IP addresses IP address (without network number) of the + gateway block (coded as 1, 2 or 3 octets) + +# of Distances number of distances in the gateway block + +Distances numbers depending on autonomous system + architecture + +# of Nets number of nets at each distance + +Nets IP network number reachable via the gateway + +Exterior Gateway Protocol Formal Specification Page 24 +D.L. Mills + + +A.5. Error Response/Indication + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | EGP Version # | Type | Code | Status | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Checksum | Autonomous System # | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sequence # | Reason | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + | Error Message Header | + | (first three 32-bit words of EGP header) | + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Type 8 + +Code 0 + +Status 0 indeterminate + 1 Up state + 2 Down state + 128 unsolicited message bit + +Reason (see below) 0 unspecified + 1 bad EGP header format + 2 bad EGP data field format + 3 reachability info unavailable + 4 excessive polling rate + 5 no response + +Error Message Header first three 32-bit words of EGP header + +Following is a summary of the assigned Reason codes along with a list of +scenarios in which they might be used. + +Exterior Gateway Protocol Formal Specification Page 25 +D.L. Mills + + +Code Reason Scenarios +------------------------------------------------------------------------ +0 unspecified when nothing else fits + +1 bad EGP header format 1. bad message length + 2. invalid Type, Code or Status fields + + Notes: The recipient can determine which + of the above hold by inspecting the EGP + header included in the message. An + instance of a wrong EGP version or bad + checksum should not be reported, since + the original recipient can not trust the + header format. An instance of an unknown + autonomous system should be caught at + acquistion time. + +2 bad EGP data field 1. nonsense polling rates + format (Request/Confirm) + 2. invalid Update message format + 3. response IP Net Address field does + not match command (Update) + + Notes: An instance of nonsense polling + intervals (e.g. too long to be useful) + specified in a Request or Confirm should + result in a Refuse or Cease with this + cause specified. + +3 reachability info 1. no info available on net specified in + unavailable IP Net Address field (Poll) + +4 excessive polling rate 1. two or more Hello commands received + within minimum specified polling + interval + 2. two or more Poll commands received + within minimum specified polling + interval + 3. two or more Request commands received + within some (reasonably short) + interval + + Notes: The recipient can determine which + of the above hold by inspecting the EGP + header included in the message. + +5 no response 1. no Update received for Poll within + some (reasonably long) interval + +Exterior Gateway Protocol Formal Specification Page 26 +D.L. Mills + + +Appendix B. Comparison with RFC-888 + + Minor functional enhancements are necessary in the RFC-888 message +formats to support certain features assumed of the state-machine model, +in particular the capability to request a neighbor to suppress Hello +commands. In addition, the model suggests a mapping between its states +and certain status and error indications which clarifies and generalizes +the interpretation. + + All of the header fields except the Status field (called the +Information field at some places in RFC-888) remain unchanged. The +following table summarizes the suggested format changes in the Status +field for the various messages by (Type, Code) class. + +Class Messages Status Codes +------------------------------------------------------------------- +3,0 Request 0 unspecified +3,1 Confirm 1 active mode +3,2 Refuse 2 passive mode +3,3 Cease 3 insufficient resources +3,4 Cease-ack 4 administratively prohibited + 5 going down + 6 parameter problem + +5,0 Hello 0 indeterminate +5,1 I-H-U 1 Up state +2,0 Poll 2 Down state +1,0 Update 128 unsolicited message bit +8,0 Error + +The changes from RFC-888 are as follows: + +1. The status codes have been combined in two classes, one for those + messages involved in starting and stopping the protocol and the + other for those messages involved in maintaining the protocol and + exchanging reachability information. Some messages of either class + may not use all the status codes assigned. + +2. The status codes for the Request and Confirm indicate whether the + sender can operate in active or passive mode. In RFC-888 this field + must be zero; however, RFC-888 does not specify any mechanism to + decide how the neighbors poll each other. + +3. The status codes for the Cease, Refuse and Cease-ack have the same + interpretation. This provides a clear and unambiguous indication + when the protocol is terminated due to an unusual situation, for + instance if the NOC dynamically repartitions the ARPANET. The + assigned codes are not consistent with RFC-888, since the codes for + the Refuse and Cease were assigned conflicting values; however, the + differences are minor and should cause no significant problems. + +Exterior Gateway Protocol Formal Specification Page 27 +D.L. Mills + + +4. The status codes for the Hello, I-H-U, Poll, Update and Error have + the same interpretation. Codes 0 through 2 are mutually exclusive + and are chosen solely on the basis of the state of the sender. In + the case of the Update (and possibly Error) one of these codes can + be combined with the "unsolicited bit," which corresponds to code + 128. In RFC-888 this field is unused for the Poll and Error and may + contain only zero or 128 for the Update, so that the default case is + to assume that reciprocal reachability cannot be determined by these + messages. + +5. Some of the reachability codes defined in RFC-888 have been removed + as not applicable. + +Exterior Gateway Protocol Formal Specification Page 28 +D.L. Mills + + +Appendix C. Reachability Analysis + + The following table shows the state transitions which can occur in +a system of two neighboring EGP gateways. Besides being useful in the +design and verification of the protocol, the table is useful for +implementation and testing. + + The system of two neighboring EGP gateways is modelled as a +finite-state automaton constructed as the cartesian product of two state +machines as defined above. Each state of this machine is represented as +[i,j], where i and j are states of the original machine. Each line of +the table shows one state transition of the machine in the form: + + [i1,j1] -> [i2,j2] E A + +which specifies the machine in state [i1,j1] presented with event E +transitions to state [i2,j2] and generates action A. Multiple actions +are separated by the "/" symbol. The special symbol "*" represents the +set of lines where all "*"s in the line take on the (same) values 0 - 4 +in turn. + + The table shows only those transitions which can occur as the +result of events arriving at one of the two neighbors. The full table +includes a duplicate set of lines for the other neighbor as well, with +each line derived from a line of the table below using the +transformation: + + [i1,j1] -> [i2,j2] E A => [j1,i1] -> [j2,i2] E A + +State State Event Actions +--------------------------------------------------- +[*,4] -> [0,4] Cease Cease-ack + +[0,1] -> [2,1] Request Confirm/Hello/Up/t1 +[0,1] -> [0,1] Request Refuse +[0,*] -> [1,*] Start Request/t1 + +[1,1] -> [2,1] Request Confirm/Hello/Up/t1 +[1,2] -> [2,2] Confirm Hello/Up/t1 +[1,3] -> [2,3] Confirm Hello/Up/t1 +[1,0] -> [0,0] Refuse Null +[1,*] -> [1,*] Start Request/r1 +[1,*] -> [0,*] Stop Null +[1,*] -> [1,*] t1 Request/t1 + +[2,1] -> [3,1] Up Down/Hello/Poll/t1/t2 +[2,1] -> [2,1] Request Confirm/Hello/Up/t1 +[2,2] -> [2,2] Hello I-H-U +[2,3] -> [2,3] Hello I-H-U +[2,2] -> [2,2] I-H-U Process + +Exterior Gateway Protocol Formal Specification Page 29 +D.L. Mills + + +[2,3] -> [2,3] I-H-U Process +[2,*] -> [1,*] Start Request/r1 +[2,*] -> [4,*] Stop Cease/t1 +[2,1] -> [2,1] t1 Hello/t1 +[2,2] -> [2,2] t1 Hello/t1 +[2,3] -> [2,3] t1 Hello/t1 + +[3,1] -> [2,1] Down Null +[3,2] -> [2,2] Down Null +[3,3] -> [2,3] Down Null +[3,1] -> [2,1] Request Confirm/Hello/Up/t1 +[3,2] -> [3,2] Hello I-H-U +[3,3] -> [3,3] Hello I-H-U +[3,2] -> [3,2] I-H-U Process +[3,3] -> [3,3] I-H-U Process +[3,3] -> [3,3] Poll Update +[3,3] -> [3,3] Update Process +[3,*] -> [1,*] Start Request/r1 +[3,*] -> [4,*] Stop Cease/t1 +[3,1] -> [3,1] t1 Hello/t1 +[3,2] -> [3,2] t1 Hello/t1 +[3,3] -> [3,3] t1 Hello/t1 +[3,1] -> [3,1] t2 Poll/t2 +[3,2] -> [3,2] t2 Poll/t2 +[3,3] -> [3,3] t2 Poll/t2 + +[4,1] -> [4,1] Request Cease +[4,*] -> [0,*] Cease Cease-ack +[4,0] -> [0,0] Cease-ack Null +[4,*] -> [0,*] Stop Null +[4,*] -> [4,*] t1 Cease/t1 + + In the state-machine model defined in this document all states of +the above machine are reachable; however, some are reachable only in +extreme cases when one neighbor crashes, for example. In the common +case where only one of the neighbors initiates and terminates the +protocol and neither one crashes, for example, not all states are +reachable. Following is a matrix showing the states which can be +reached in this case, where the neighbor that initiates and terminates +the protocol is called the active gateway and the other the passive +gateway. + +Exterior Gateway Protocol Formal Specification Page 30 +D.L. Mills + + + Passive Gateway +Active 0 Idle 1 Aqsn 2 Down 3 Up 4 Cease +Gateway +-----------+-----------+-----------+-----------+-----------+ +0 Idle |stable | | | |unstable | +1 Aqsn |unstable |unstable |unstable |unstable |unstable | +2 Down | | |stable |unstable | | +3 Up | | |unstable |stable | | +4 Cease |unstable |unstable |unstable |unstable |unstable | + +-----------+-----------+-----------+-----------+-----------+ + + In the above matrix the blank entries represent unreachable states, +while those marked unstable represent transient states which cannot +persist for long, due to retransmission of Request and Hello messages, +for example. +
\ No newline at end of file |