A ¡Lifecycle ¡Approach ¡ Phil ¡Shafer ¡ IETF96, ¡Berlin ¡
Problem ¡ • Fuzzy ¡terms ¡ – Applied, ¡Intended, ¡acAve, ¡even ¡configuraAon ¡ • Rorschach ¡test ¡for ¡readers ¡ – We ¡agree ¡to ¡things ¡where ¡we ¡have ¡different ¡ understandings ¡of ¡terminology ¡
Lifecycle ¡Approach ¡ • Let's ¡talk ¡about ¡phases ¡and ¡processing ¡ – How ¡data ¡moves ¡and ¡is ¡manipulated ¡ • Avoid ¡overloaded ¡names ¡ – Use ¡"Alpha", ¡"Bravo", ¡or ¡Pokemon ¡names; ¡don't ¡care ¡ – When ¡the ¡lifecycle ¡is ¡fully ¡defined, ¡names ¡will ¡appear ¡ (hopefully) ¡
Goals ¡ • Define ¡a ¡concrete ¡lifecycle ¡ – An ¡informaAon ¡model ¡for ¡on-‑box ¡data ¡ • Be ¡explicit ¡about ¡phases ¡and ¡phase ¡changes ¡ – What's ¡added, ¡removed, ¡or ¡changed ¡between ¡ phases ¡ • Call ¡out ¡disAnct ¡behaviors ¡ – Current ¡and ¡future, ¡useful ¡and ¡real-‑world ¡ • Lastly: ¡Create ¡meaningful ¡names ¡for ¡phases ¡
Example ¡Phase ¡Changes ¡ – Remove ¡data ¡for ¡absent ¡hardware ¡(FRUs) ¡ • "ephemeral ¡interfaces", ¡chip ¡features ¡ – Add ¡system-‑defined ¡hardware ¡(mgmt ¡ports) ¡ – Add ¡device-‑based ¡defaults ¡ • Model-‑specific, ¡lists ¡ – Remove ¡nodes ¡marked ¡"inacAve" ¡ – Add ¡expansions ¡of ¡configuraAon ¡groups ¡/ ¡templates ¡ – Add ¡data ¡from ¡on-‑box ¡scripAng ¡
Example ¡Phase ¡Changes ¡(2) ¡ – Add ¡data ¡from ¡external ¡controller ¡ • Persistant ¡(survives ¡reboot) ¡ – Add ¡data ¡from ¡external ¡controller ¡ • Does ¡_NOT_ ¡persist ¡ – Hand-‑built ¡data ¡(human ¡hands) ¡ • Has ¡higher ¡priority ¡ • Persistant ¡ • (First ¡phase ¡change?) ¡
Bo^om ¡of ¡the ¡Diagram ¡ Finalized ¡InstrucAons ¡ ¡aka ¡"x-‑ray" ¡ Replace ¡nodes ¡ with ¡current ¡ values ¡ True ¡Device ¡Behavior ¡ ¡aka ¡"yankee" ¡ Add ¡config=false ¡ nodes ¡ Full ¡Device ¡Data ¡ ¡aka ¡"zulu" ¡
Recommend
More recommend