It seems that there are some
problems in the explanation of Appendix A concerning with the Keepalive timer.
In section 4.2.1, Keepalive messages
are used to acknowledge Open messages, and once the PCEP session has been
In section 6.2, the PCEP session is
considered as established once both PCEP peers have received a Keepalive
message from their peer.
In Appendix A, if a system in
OpenWait state receives an Open message from the PCEP peer before the
expiration of the OpenWait timer, it performs collision resolution procedure.
If there is no collision, no errors are detected in Open message, and the
session characteristics are acceptable to the local system, the system:
o Sends a
Keepalive message to the PCEP peer,
o Starts the
o Sets the
RemoteOK variable to 1.
If LocalOK=0 the system clears the
OpenWait timer, starts the KeepWait timer and moves to the KeepWait state.
The statement in section 4.2.1 and
starting the Keepalive timer in OpenWait state when LocalOK=0 are contradictory
because the system starts keepalive mechanism although the session is not
Also, it seems that there is another
problem. In section 7.3, it is explained that "A sends an Open message to
B with Keepalive=10 seconds and Deadtimer=40 seconds. This means that A
sends Keepalive messages (or any other PCEP message) to B every 10 seconds and
B can declare the PCEP session with A down if no PCEP message has been received
from A within any 40 second period". The Keepalive timer should follow the
Keepalive value in the Open message that was sent to its peer (not the
Keepalive value in the Open message received from its peer). Therefore, the
Keepalive timer can be set only after the peer accepted the parameter values in
the Open, i.e. only after the system receives a Keepalive message from its
I think the Keepalive timer and the
Deadtimer should be started when the system moves to SessionUP state. Is there
anybody who can give me any advice?
Thanks in advance.