- [X] escape strings in jprint - [X] improve NgSendMsg error messages - [X] destroy eiface if ifconfig_vnet fails - [X] directly use nmount instead of fork+exec - [X] mdkir for layers in lamina - [X] remove target directory for layers - because of how unionfs works, union is not done on separate subdirectories with the same name - this confused me at first and to prevent further confusion I should probably remove target - [X] escape strings when printing mounts in sf.lamina - [X] move examples to a separate repository - [ ] use rmslashes - [ ] add a bunch of missing checks to sf.lamina - [ ] create getting started - [ ] create documentation / man pages - [ ] sf system - [ ] sf.base - [ ] modules - [ ] sf.skeleton - [ ] sf.jail - [ ] sf.eiface - [ ] sf.bridge - [ ] sf.bhyve - [ ] UIs - [ ] create a more elaborate topology to show of more features - [-] sf.base - [X] load module specific data - [X] call modules on node start and stop operations - [X] call custom module functions - [X] call modules to get endpoints - [X] node start - [X] node stop - [X] link start - [X] link stop - [X] cmd - [X] mod - [X] make link creation simpler - [X] when stopping nodes, first disconnect their links - [-] lossy links using ng_pipe - [X] parse - [X] start - [X] stop - [ ] mod - [ ] allow caller to store arbitrary data in state - [X] sf.skeleton - [-] sf.jail - [X] parse configuration - [X] parse data - [X] start - [X] fs - [X] jail - [X] interfaces - [X] move interfaces to vnet - [X] stop - [X] fs - [X] jail - [X] interfaces - [X] get-endpoint - [X] cmd - [X] sh - [X] wireshark - [X] interface types - [X] eiface - [X] steal - [X] mount devfs - [X] init system - [X] start - [X] shutdown - [X] custom commands - [X] specify devfs ruleset - [X] remove unmount sleep - [X] we force unmount after jail_remove - [X] check that name is valid - [ ] investigate zfs whiteout support - [ ] mod - [X] sf.eiface - [X] parse configuration - [X] parse data - [X] start - [X] stop - [X] get-endpoint - [X] allow automatic address assignment - [X] check that name is valid - [X] sf.bridge - [X] parse configuration - [X] parse data - [X] start - [X] stop - [X] get-endpoint - [ ] sf.bhyve - [ ] parse configuration - [ ] parse data - [ ] start - [ ] stop - [ ] get-endpoint - [ ] 9p - this will probably have to wait for 15.0-RELEASE - [X] sf.lamina - [X] parse commands - [X] commands - [X] LAYER - [X] DEVFS - [X] RUN - [X] CHDIR - [X] COPY - [X] USER - [ ] sf.gui - Web gui would be nice... I should first play with canvas a bit and javascript. I have no previous experience with this. - Considering we are handling UCL/json/yaml data, web client shouldn't be that hard.