From 85cab33148b05cd4ceee955f0bcb31392ae619bc Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Fri, 24 Jul 2020 06:07:36 -0600 Subject: [PATCH] clean up README a bit --- README.md | 24 +++++++++++++++++------- doc/img/dependency-resolution.png | Bin 0 -> 10766 bytes 2 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 doc/img/dependency-resolution.png diff --git a/README.md b/README.md index f9a9f98..713e281 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,26 @@ # ifupdown-ng -This package is a work in progress implementation of the ifupdown suite. It is -intended to be largely compatible with ifupdown and ifupdown2, with some caveats: +ifupdown-ng is a network device manager that is largely compatible with Debian +ifupdown, BusyBox ifupdown and Cumulus Networks' ifupdown2. + +## Dependency Resolution + +![Dependency resolution example](doc/img/dependency-resolution.png) + +ifupdown-ng uses a dependency resolver to determine interface bring-up order +in a deterministic way. To use this feature, you must declare relationships +between interfaces with the `requires` keyword. This keeps the implementation +efficient. For convenience, the `requires` keyword is exported to executors +as the `IF_REQUIRES` environment variable. + +For compatibility with some legacy ifupdown executors, we also provide the +`requires` keyword under other environment variables in some cases. + +## Caveats * ifupdown2 python plugins are not supported at this time. An executor could be written to handle them. -* ifupdown-ng uses a SAT solver to determine interface bring-up order, like - ifupdown2. However, relationships must be explicitly defined instead of - inferred by plugins in ifupdown2. This simplifies the executors and ensures - consistent behaviour across executors. - * ifupdown-ng retains compatibility with /etc/network/if-X.d scripts, but will prefer using executors in /usr/libexec/ifupdown-ng where appropriate. diff --git a/doc/img/dependency-resolution.png b/doc/img/dependency-resolution.png new file mode 100644 index 0000000000000000000000000000000000000000..dc28eea71de2ae29875dc6b0075e18193b7d642c GIT binary patch literal 10766 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%0ARi2@ZHkBYS2{0AyLoyR1P4PBwHJo~ z?0pHMjsmF_s-1v#1jZLc<_0hW+%FDZ(Z~coLCZ$50g!mif0Doi5WThVna!@|^XlrV zDqCU#P~-cvm7VKkZ|ju6s2kL*B?H6@SJ&57DO8n$N5{?~fhk%8|9gU6+TT+1YiKB+ zSo$&;7%d>Vjs=|k4tHu=HzdK405aGsw^g<3WO65jEgBLF* zz>FJ*gv4iHrGT9U4t6#eEYmI0R~~DlprAo2hL&ZPPHe}gq(org5HWFb;$9psMds!{ z?C9tqp`eHe!N38bUB$#Mr@au(LQ4QG$fi*a-f)&ooc&Ch92jq4WyMTn*X~*GPaFfa zd25meH@El?!wX^+6ub|J8)}Ts&W;NYFD(NGa=d`+^Kki`;K)cERHz6-4#2o(=jK41 zEnB27pF0L#zyAD510Dwy!3K5f^yep5jS(SWrGdBqEG~~$?h*ed%Lbe^*29O5xOdIj zL=c&9a^kj7?~3vA<;%YQelQ0|3I<3}ei6v=0hOJco|Z2)P+&`JpPQpOKR