Bridge
LSA change が SPF, route, winner selection を一気に呼ぶ
Session 07-09 で graph, routes, cost comparison を分けて読みました。Session 10 はそれらを一つの recompute step に束ねて、「LSA が変わったらどの prefix が動くか」を見えるようにします。
Read The Source
before / after を作って changed prefixes を抽出する
before = recompute_area_routes(lsdb, root_router_id, lsa.area_id) installed = lsdb.install_router_lsa(lsa) after = recompute_area_routes(lsdb, root_router_id, lsa.area_id)
この session では recompute を「SPF を呼ぶこと」ではなく、「before と after の route set を見比べること」として読みます。だから `changed_prefixes` が中心になります。
Walkthrough
stub metric change だけで 1 prefix の cost が動く例を見る
cd protocol-in-code PYTHONPATH=src python3 examples/ospf/session_10_walkthrough.py
walkthrough では remote Router-LSA の link set は保ったまま stub metric だけを変えて、同じ prefix が別 cost で recompute されることを見ます。
Done Check
Session 10 を終えたと言える条件
- Router-LSA change が area-wide recompute を起こすと説明できる
- `changed_prefixes` が route diff の結果だと説明できる
- SPF, route derivation, winner selection の呼び順を説明できる
Next Session
次は area boundary で見え方が変わるところです
Session 11 では summary route を読みます。source area の route view が target area でどう書き換わるかを見ます。