Exercise 1: Where does the news go?
Shut leaf3's host port (interface eth2 / shutdown) in both twins. Which routers re-run SPF?
Which routers' routing tables change in the BGP twin, and did anyone recompute?

Answer
OSPF: all 5 routers run SPF (+1 each). leaf3's Router LSA changes (one link fewer), floods to the
whole area, and every router installs the new version (lsa_updates +1 everywhere) and recomputes.
BGP: 172.16.3.0/24 is withdrawn from every router's table (they all needed that prefix, so they
all hear about it: 12 UPDATEs in total, a withdraw per session), but nobody ran SPF. Same reach,
far less work per router. Both twins: leaf1 says "% Network not in table" for 172.16.3.0/24.

Reproduce it: sudo sh solutions/exercise1/run.sh   (shuts, counts, then restores)

Measured on camera (GNS3, 10/18):
router         lsa_updates           lsdb_lsas          rib_routes            spf_runs
spine1             98 (+1)              5 (+0)              7 (-1)             42 (+1)
spine2             98 (+1)              5 (+0)              7 (-1)             47 (+1)
leaf1              98 (+1)              5 (+0)              8 (-1)             49 (+1)
leaf2              98 (+1)              5 (+0)              8 (-1)             49 (+1)
leaf3              98 (+1)              5 (+0)              7 (-2)             43 (+1)
router        bgp_prefixes    bgp_updates_rcvd    bgp_updates_sent          rib_routes
spine1              6 (-1)             57 (+3)             36 (+3)              6 (-1)
spine2              6 (-1)             88 (+3)             81 (+3)              6 (-1)
leaf1               7 (-1)             52 (+2)             86 (+2)              8 (-1)
leaf2               7 (-1)             34 (+2)             34 (+2)              8 (-1)
leaf3               8 (+0)             34 (+2)             34 (+2)              7 (-2)
The kit on containerlab gave the same deltas (absolute values differ: they depend on lab uptime).
leaf3 keeps 8 BGP prefixes: its own 172.16.3.0/24 stays in its BGP table, marked invalid
("inaccessible, import-check enabled"), and is not advertised.
