Date: Sat, 8 Jul 2006 10:26:51 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 100974 for review Message-ID: <200607081026.k68AQpvu094024@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=100974 Change 100974 by rwatson@rwatson_zoo on 2006/07/08 10:26:20 Notes on mac2 branch. Affected files ... .. //depot/projects/trustedbsd/mac2/mac2_notes.txt#2 edit Differences ... ==== //depot/projects/trustedbsd/mac2/mac2_notes.txt#2 (text+ko) ==== @@ -1,1 +1,58 @@ Notes file for prototype changes made in the MAC2 branch. + +- Renaming of pretty much all entry points. Adopt a new naming scheme + based on: + + mpo_<object/subsystem>_<method>() + mpo_<object/subsystem>_check_<method>() + + Likewise for mac_*. This appears to shorten quite a few names + (removing '_from_', etc), and make things much more legible and + consistent. + +- Add a new subsystem class netinet to hold netinet-related methods. + +- Resort entry points in mac_framework.h, mac_policy.h by object rather + than method. This significantly improves readability. + +- Split mac.h into mac.h and mac_framework.h, breaking out user and kernel + APIs into separate kernel include files. + +Planned changes: + +- Accessor methods for slot data based on functions, in order to avoid + encoding the ABI of the slot/label mechanism into modules. Proposed + methods: + + mac_<object>_getlabel(mpc, object, &valuep); + mac_<object>_setlabel(mpc, object, value); + + These will get and set the slot field, which will be of type uintptr_t. + Locking will be unchanged. Policies will likely wrap these in their + own macro or inline to pass mpc implicitly in common use. + +- Remove label arguments from policy entry points where an accessor method + can be used. + +Already performed and merged changes: + +- Adopt SEDarwin MAC Framework change to provide mpo_foo_t prototypes for + mac_policy_ops entries. This has several advantages: + + Provide a more clear style and structure for inline documentation. + + Allow internal prototyping in policies so they can be broken into + multiple C files more easily. + +Future directions: + +- Break policy modules into multiple files by object/subsystem class, + with policy_internal.h using new mpo prototypes. + +- Explore and possibly adopt SEDarwin MAC Framework changes to allow + specific label registration for policy modules for FreeBSD. + +- Explore and possibly adopt fine-grained label registration so that slots + are only used for objects requested by the policy. I.e., policies can + request only a cred label slot, etc. This could then be used to key + memory allocation overhead on more objects.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607081026.k68AQpvu094024>