I share simple explanation about graceful-restart in Juniper router:
set routing-instances R-INSTANCE-A routing-options graceful-restart
Explanation is graceful-restart enable by default at the moment create routing protocols, to disable graceful-restart using:
set routing-instances R-INSTANCE-A routing-options graceful-restart disable
If we load configuration from file, didn't configure line-by-line, so it's possible one routing-instance routing-options graceful-restart command appear and another routing-instance routing-options graceful-restart not appear, so for the same configuration, better we delete the command config not graceful-restart disable.
We can verify with command graceful-restart is enable or disable
On Juniper with OSPF dynamic-routing-protocol enable, so we can verify with 'show ospf overview'
...
Restart: Enabled
Restart duration: …sec
Restart grace period: …sec
Helper mode: Enabled
...
Graceful-restart function is for maintance routing protocols neighbor for example OSPF, if we have 3 router G1 --- G2 --- G3, all running OSPF, at the moment on G2 RE (routing engine) master failed and switch to RE backup, OSPF neighbor status in G1 dan G3 will down, but because G2 enable graceful-restart enable, G1 still send traffic to G2 until graceful-restart timer in G2 expire while wait RE backup will be handle as master, so traffic is not interrupt until RE backup be master. Different case if graceful-restart disable G1 will discard traffic even G2 have redundancy RE, so better graceful-restart is enable.
If we enable graceful-restart in single RE, it's be useless configuration. Every routing-protocols have different charateristic of graceful but overall function is same.
For reference of OSPF graceful: RFC3623
Next time I will test on lab: Cisco and Juniper.